這個問題對於Perl FaceBook :: Graph API有些特定,並且可能與通常的Facebook Graph無關。我試圖做的是嘗試使用Perl和FaceBook :: Graph模塊發佈照片。模塊文檔(http://metacpan.org/pod/Facebook::Graph)表示在發佈照片後需要「publish_stream」權限,但會生成一個「必須使用活動訪問令牌查詢有關當前用戶的信息」。錯誤,而常規的消息發佈沒有錯誤。在檢查我的訪問令牌調試器,我得到以下信息令牌:使用Perl FaceBook將圖像內容從防火牆後面發佈到FaceBook ::圖
App ID: [removed]: [removed]
Metadata: []
User ID: [removed] : [removed]
Issued: Unknown
Expires: 1372705200 (in about an hour)
Valid: True
Origin: Web
Scopes: create_note photo_upload publish_actions publish_stream share_item status_update user_photos video_upload
不幸的是,CPAN文檔「臉譜::圖::發佈::照片」模塊是有點欠缺,我可以」找到一個完整的Perl示例來發布不引用相同代碼的照片。更完整的示例代碼由我下面:
#note: this is not the complete code I'm using, quite a few non-FB related lines left out for simplicity
#create the
my $FBHandle=Facebook::Graph->new(
app_id => $TargetFBAppID, #passed in as an arg
secret => $TargetFBAppSecret, #passed in as an arg
postback => $TargetFBAppPostBack #passed in as an arg
);
#make sure this is valid when passing it in
my $AccessTokenResult=$FBHandle->access_token($FBAccessToken); #passed in as an arg, generated by FB's Access Token Debugger
if(!$AccessTokenResult) {
$FaultString="No FB access token returned";
} else {
#do the image post
my $PostHash=$FBHandle->add_photo()
->set_source($TempFileResultHash->{"fullpath"}) #works out to "C:/Tools/apache-tomcat-7.0.22/webapps/service_api/temp/FacebookBroadcast-F38365F5-6D00-1014-9DBD-87D476B3CC17"
->set_message($OptionsHash->{"message"}||"") #passed in from args
;
#add_post works, but not add_photo
#my $PostHash=$FBHandle->add_post()
# ->set_message($OptionsHash->{"message"}||"") #passed in from args
#;
#send it
my $PostResultHash=$PostHash->publish(); #need "publish_stream" priv for this to work
die Data::Dumper::Dumper($PostResultHash); #dump the result
} #end if
任何人都有一個想法,我可能會出錯?
進一步編輯:如果正確的priv被添加到訪問標記中,FaceBook :: Graph add_note()和add_link()方法也可以正常工作,但add_photo()仍會引發錯誤。
我解決了這個問題。問題是Facebook :: Graph :: Request模塊中的一個錯誤。 –