NAME
Mojo::Facebook - Talk with Facebook
VERSION
0.0201
DESCRIPTION
This module implements basic actions to the Facebook graph protocol.
SYNOPSIS
use Mojo::Facebook;
my $fb = Mojo::Facebook->new(access_token => $some_secret);
Mojo::IOLoop->delay(
sub {
my($delay) = @_;
$fb->fetch({
from => '1234567890',
fields => 'name',
}, $delay->begin);
},
sub {
my($delay, $res) = @_;
warn $res->{error} || $res->{name};
},
)
ERROR HANDLING
Facebook JSON errors will be set in the $res hash returned to the
callback:
Error messages
* Could not decode JSON from Facebook
* $fb_json->{error}{message}
* HTTP status message
* Unknown error from JSON structure
ATTRIBUTES
access_token
This attribute need to be set when doing "fetch" on private objects or
when issuing "post".
app_namespace
This attribute is used by "publish" as prefix to the publish URL:
https://graph.facebook.com/$id/$app_namespace:$action
METHODS
fetch
$self->fetch({
from => $id,
fields => [...]
ids => [...],
limit => $Int,
offset => $Int,
}, $callback);
Will fetch information from Facebook about a user.
$id can be ommitted and will then default to "me". $callback will be
called like this:
$callback->($self, $res);
$res will be a hash-ref containing the result. Look for the "error" key
to check for errors.
post
$self->post({
to => $id,
message => $str,
link => $url,
name => $str,
caption => $str,
description => $str,
picture => $url,
}, $callback);
Creates a post at $who's wall, looking like this:
.------------------------------------.
| $message ... |
| |
| .----------. |
| | $picture | [$link]($name) |
| | | $caption ... |
| | | $description ... |
| '----------' |
'------------------------------------'
$callback will be called like this:
$callback->($self, $res);
$res will be a hash-ref containing the result. Look for the "error" key
to check for errors.
TODO: Tags are not supported yet. Getting
{
"error":{
"message":"(#100) Array does not resolve to a valid user ID",
"type":"OAuthException",
"code":100
}
}
comment
$self->comment({ on => $id, message => $str }, $callback);
Will add a comment to a graph element with the given $id.
$callback will be called like this:
$callback->($self, $res);
$res will be a hash-ref containing the result. Look for the "error" key
to check for errors.
publish
$self->publish({
to => $id,
action => $str,
$object_name => $object_url,
# optional
start_time => $DateTime,
end_time => $DateTime,
expires_in => $int,
message => $str,
place => $facebook_id,
ref => String,
tags => "$facebook_id,...",
# any other key/value is considered to be custom
$custom_attribute => $any,
});
Publish a story at $who's wall, looking like this:
.--------------------------------------.
| $who $action a $object_name ... $app |
| |
| .----------. |
| | $image | [$url]($title) |
| | | $descripton ... |
| '----------' |
'--------------------------------------'
Required HTML:
$callback will be called like this:
$callback->($self, $res);
$res will be a hash-ref containing the result. Look for the "error" key
to check for errors.
delete_object
$self->delete_object($id, $callback);
Will try to remove an object from Facebook.
&callback will be called like this:
$callback->($self, $res);
$res will be a hash-ref containing the result. Look for the "error" key
to check for errors.
picture
$url = $self->picture;
$url = $self->picture($who, $type);
Returns a Mojo::URL object with the URL to a Facebook image.
$who defaults to "me". $type can be "square", "small" or "large".
Default to "square".
COPYRIGHT & LICENSE
This library is free software. You can redistribute it and/or modify it
under the same terms as Perl itself.
AUTHOR
Jan Henning Thorsen - jhthorsen@cpan.org