Catalyst-Plugin-Facebook
view release on metacpan or search on metacpan
lib/Catalyst/Plugin/Facebook.pm view on Meta::CPAN
package Catalyst::Plugin::Facebook;
our $VERSION = '0.2';
use strict;
use warnings;
use WWW::Facebook::API;
use Scalar::Util qw();
# why not
*fb = \&facebook;
sub facebook {
my ($c) = @_;
unless ( $c->{'facebook'} and Scalar::Util::blessed($c->{'facebook'}) and $c->{'facebook'}->isa('WWW::Facebook::API') ) {
$c->{'facebook'} = WWW::Facebook::API->new(
'desktop' => 0,
'format' => 'JSON',
'parse' => 1,
%{ $c->config->{'facebook'} || { } },
);
$c->{'facebook'}->query( $c->request);
my $params = $c->facebook->canvas->get_fb_params;
$c->{'facebook'}->session('uid' => $params->{'user'}, 'key' => $params->{'session_key'}, 'expires' => $params->{'expires'});
}
return $c->{'facebook'};
}
1;
=pod
=head1 VERSION
version 0.2
=pod
=head1 NAME
Catalyst::Plugin::Facebook - Build Facebook applications in Catalyst easier
=head1 SYNOPSIS
This module adds quick and easy access to WWW::Facebook::API within
a Catalyst application.
use Catalyst qw/Facebook/;
__PACKAGE__->config(
'facebook' => {
'api_key' => 'api_key_xyz',
'secret' => '12345ddd',
}
);
sub auto : Private {
my ( $self, $c ) = @_;
if (! $self->can_display($c)) {
return;
}
return 1;
}
sub can_display {
my ($self, $c) = @_;
if (! $c->facebook->canvas->in_fb_canvas()) {
$c->res->redirect('http://apps.facebook.com/iplaywow/');
return 0;
}
if (! $c->facebook->canvas->get_fb_params->{'added'} ) {
$c->res->redirect($c->facebook->get_add_url());
return 0;
}
my $user = $c->facebook->canvas->get_fb_params->{'user'};
if (! $user) {
( run in 0.441 second using v1.01-cache-2.11-cpan-e1769b4cff6 )