Facebook::Graph - A fast and easy way to integrate your apps with Facebook.
version 0.0300
my $fb = Facebook::Graph->new; my $sarah_bownds = $fb->fetch('sarahbownds'); my $perl_page = $fb->fetch('16665510298');
Or better yet:
my $sarah_bownds = $fb->query ->find('sarahbownds') ->include_metadata ->select_fields(qw( id name picture )) ->request ->as_hashref;
my $fb = Facebook::Graph->new( app_id => $facebook_application_id, secret => $facebook_application_secret, postback => 'https://www.yourapplication.com/facebook/oauth/postback', );
Get the user to authorize your app (only needed if you want to fetch non-public information or publish stuff):
my $uri = $fb ->authorize ->extend_permissions(qw(offline_access publish_stream)) ->uri_as_string; # redirect the user's browser to $uri
Handle the Facebook authorization code postback:
my $q = Plack::Request->new($env); $fb->request_access_token($q->query_param('code'));
Or if you already had the access token:
$fb->access_token($token);
Get some info:
my $user = $fb->fetch('me'); my $friends = $fb->fetch('me/friends'); my $sarah_bownds = $fb->fetch('sarahbownds');
This is a Perl interface to the Facebook Graph API http://developers.facebook.com/docs/api. With this module you can currently query public Facebook data, query privileged Facebook data, and build a privileged Facebook application. See the TODO for all that this module cannot yet do.
WARNING: The work on this module has only just begun because the Graph API itself isn't very new, and I'm only working on it as I have some tuits. Therefore things are potentially subject to change drastically with each release.
The constructor.
A hash of base parameters, just so you don't have to pass them around. If you only want to do public queries then these params are not needed.
An access token string used to make Facebook requests as a privileged user. Required if you want to make privileged queries or perform privileged actions on Facebook objects.
The application id that you get from Facebook after registering (http://developers.facebook.com/setup/) your application on their site. Required if you'll be calling the request_access_token, convert_sessions, or authorize methods.
request_access_token
convert_sessions
authorize
The application secret that you get from Facebook after registering your application. Required if you'll be calling the request_access_token or convert_sessions methods.
The URI that Facebook should post your authorization code back to. Required if you'll be calling the request_access_token or authorize methods.
NOTE: It must be a sub URI of the URI that you put in the Application Settings > Connect > Connect URL field of your application's profile on Facebook.
Creates a Facebook::Graph::Authorize object, which can be used to get permissions from a user for your application.
Creates a Facebook::Graph::AccessToken object and fetches an access token from Facebook, which will allow everything you do with Facebook::Graph to work within user privileges rather than through the public interface. Returns a Facebook::Graph::AccessToken::Response object, and also sets the access_token property in the Facebook::Graph object.
access_token
An authorization code string that you should have gotten by going through the authorize process.
Creates a Facebook::Graph::Query object, which can be used to fetch and search data from Facebook.
Returns a hash reference of an object from facebook. A quick way to grab an object from Facebook. These two statements are identical:
my $sarah = $fb->fetch('sarahbownds'); my $sarah = $fb->query->find('sarahbownds')->request->as_hashref;
An profile id like sarahbownds or an object id like 16665510298 for the Perl page.
sarahbownds
16665510298
A utility method to convert old sessions into access tokens that can be used with the Graph API. Returns an array reference of hash references of access tokens.
[ { "access_token": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx", "expires": 1271649600, }, ... ]
See also Facebook::Graph::Session.
An array reference of session ids from the old Facebook API.
This module throws exceptions when it encounters a problem. The exceptions are an array reference where the first element is an HTTP status code and the second element is a human readable string. For example:
[400, 'Could not execute request (https://graph.facebook.com?fields=): GraphMethodException - Unsupported get request.']
I still need to add publishing of content, deleting of content, access to pictures, impersonation, and analytics to have a feature complete API. In addition, a cookbook should be written, and a lot more tests as well.
Moose JSON LWP URI Crypt::SSLeay
http://github.com/rizen/Facebook-Graph
http://github.com/rizen/Facebook-Graph/issues
If you're looking for a fully featured Facebook client in Perl I highly recommend WWW::Facebook:API. It does just about everything, it just uses the old Facebook API.
JT Smith <jt_at_plainblack_dot_com>
Facebook::Graph is Copyright 2010 Plain Black Corporation (http://www.plainblack.com) and is licensed under the same terms as Perl itself.
To install Facebook::Graph, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Facebook::Graph
CPAN shell
perl -MCPAN -e shell install Facebook::Graph
For more information on module installation, please visit the detailed CPAN module installation guide.