#!/usr/bin/env plackup use HTTP::Request; use Data::Dumper; use WWW::Mechanize; use strict; use warnings; use Plack::Request; use Facebook::Graph; use LWP::Simple; my $app = sub { my $env = shift; my $app_id = 'xxxxxxxxxxxx'; my $app_secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxx'; my $postback_url = 'my postback url'; my $fb = Facebook::Graph->new( app_id => $app_id, secret => $app_secret, postback => "$postback_url/callback", ); my $uri = $fb ->authorize ->extend_permissions(qw(offline_access read_stream publish_stream user_photos)) ->set_display('page') ->uri_as_string; my $req = Plack::Request->new($env); $fb->request_access_token($req->query_parameters('code')); };