Catalyst::Plugin::Facebook - Build Facebook applications in Catalyst easier


Catalyst-Plugin-Facebook documentation Contained in the Catalyst-Plugin-Facebook distribution.

Index


Code Index:

VERSION

Top

version 0.2

NAME

Top

Catalyst::Plugin::Facebook - Build Facebook applications in Catalyst easier

SYNOPSIS

Top

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) {
          $c->res->redirect($c->facebook->get_login_url());
          return 0;
      }
      return 1;
  }

CONFIGURATION

Top

This package uses the 'facebook' configuration namespace. See the WWW::Facebook::API module for all of the configuration options available.

The two required configuration options are 'api_key' and 'secret'.

INTERFACE

Top

METHODS

facebook

This method, which will be available on your Catalyst context object, will return the full WWW::Facebook::API object.

fb

fb is just an alias for facebook.

BUGS

Top

Please report any bugs or feature requests to bug-catalyst-plugin-facebook at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Plugin-Facebook. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

Top

You can find documentation for this module with the perldoc command.

    perldoc Catalyst::Plugin::Facebook

You can also look for information at:

* AnnoCPAN: Annotated CPAN documentation

http://annocpan.org/dist/Catalyst-Plugin-Facebook

* CPAN Ratings

http://cpanratings.perl.org/d/Catalyst-Plugin-Facebook

* RT: CPAN's request tracker

http://rt.cpan.org/NoAuth/Bugs.html?Dist=Catalyst-Plugin-Facebook

* Search CPAN

http://search.cpan.org/dist/Catalyst-Plugin-Facebook

COPYRIGHT & LICENSE

Top

AUTHOR

Top

  Nick Gerakines <nick@gerakines.net>

COPYRIGHT AND LICENSE

Top


Catalyst-Plugin-Facebook documentation Contained in the Catalyst-Plugin-Facebook distribution.

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;





__END__