Graph API 経由で FB ユーザー データを取得したい (Perl を使用)。
「FBログインのあるWebサイト」として構成されたfacebookアプリケーションがあります。
私はNet::Facebook::Oauth2を使用しています
アプリは、次のような callbackurl で構成されています。"http://localhost/myfile.pl"
localhost/myfile.pl を開くと、Facebook にログインできるようになり、アプリケーションが自分のデータにアクセスできるようになります。しかし、フォールバックしてアクセストークンを取得する必要があるポイントになると(少なくとも、次にすべきことだと思います)、無限ループで終わります。
http://localhost/myfile.pl
以下が含まれます。
#!"C:\strawberry\perl\bin\perl.exe"
use CGI::Carp qw(fatalsToBrowser); # this makes perl showing (syntax) errors in browser
use CGI;
my $cgi = CGI->new;
use Net::Facebook::Oauth2;
my $fb = Net::Facebook::Oauth2->new(
application_id => 'xxxMY_APP_IDXXX',
application_secret => 'xxxMY_SECRETxxx',
callback => 'http://localhost/myFile.pl'
);
###get authorization URL for your application
my $url = $fb->get_authorization_url(
scope => ['offline_access','publish_stream'],
display => 'page'
);
####now redirect to this url
print $cgi->redirect($url);
##once user authorizes your application facebook will send him/her back to your application
##to the callback link provided above
###in your callback block capture verifier code and get access_token
my $fb = Net::Facebook::Oauth2->new(
application_id => 'xxxMY_APP_IDxxx',
application_secret => 'xxxMY_SECRETxxx',
callback => 'http://localhost/myFile.pl'
);
my $access_token = $fb->get_access_token(code => $cgi->param('code'));
###save this token in database or session
##later on your application you can use this verifier code to comunicate
##with facebook on behalf of this user
my $fb = Net::Facebook::Oauth2->new(
access_token => $access_token
);
my $info = $fb->get(
'https://graph.facebook.com/me' ##Facebook API URL
);
print $info->as_json;
Perl スクリプトで何か間違ったことをしていますか? それとも、コールバックのローカルホストが原因ですか?
前もって感謝します、
クリストフ・トウディ