0

我在将 facebook 帖子集成到页面(不是用户)的墙上时遇到问题。我已经为所有独家新闻授权了该应用程序。

独家新闻列表:user_about_me,user_activities,user_birthday,user_checkins,user_education_history,user_events,user_groups,user_hometown,user_interests,user_likes,user_location,user_notes,user_online_presence,user_photo_video_tags,user_photos,user_relationships,user_relationship_details,user_religion_politics,user_status_website,user_history, ,read_insights,read_mailbox,read_requests,read_stream,xmpp_login,manage_friendlists,manage_notifications,status_update,offline_access,publish_checkins,publish_stream,rsvp_event,manage_pages

我已接受所有授权访问范围,并且已成功连接并获取用户数据,我已将用户可用页面的信息保存到数据库中: 页面 ID 和页面访问令牌

当我发布测试消息时它说:#200)用户尚未授权应用程序执行此操作

这是我的 fb 登录脚本:

  window.fbAsyncInit = function() {
     FB.init({ 
       appId:'MY_APP_ID', cookie:true, 
       status:true, xfbml:true,oauth : true 
     });
   };
   (function(d){
           var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
           if (d.getElementById(id)) {return;}
           js = d.createElement('script'); js.id = id; js.async = true;
           js.src = "//connect.facebook.net/en_US/all.js";
           ref.parentNode.insertBefore(js, ref);
    }(document));
    //FB.Event.subscribe("auth.logout", function() {window.location = '/logout'});     
$('#facebook_login').click(function(e) {
    FB.login(function(response) {
      if(response.authResponse) {
          parent.location ='http://mywebsite.com/users/oauth_fb';
      }
 },{scope: 'user_about_me,user_activities,user_birthday,user_checkins,user_education_history,user_events,user_groups,user_hometown,user_interests,user_likes,user_location,user_notes,user_online_presence,user_photo_video_tags,user_photos,user_relationships,user_relationship_details,user_religion_politics,user_status,user_videos,user_website,user_work_history,email,read_friendlists,read_insights,read_mailbox,read_requests,read_stream,xmpp_login,manage_friendlists,manage_notifications,status_update,offline_access,publish_checkins,publish_stream,rsvp_event,manage_pages'});
});

连接 facebook 帐户后,我将使用我的脚本自动注销我的 facebook 帐户:

<script>
                      window.fbAsyncInit = function() {
                         FB.init({ 
                           appId:'MY_APP_ID', cookie:true, 
                           status:true, xfbml:true,oauth : true 
                         });

                         FB.Event.subscribe('auth.authResponseChange', function(response) {
                             if (response.status === 'connected') {
                                FB.logout(function(response) {
                                     window.location = '';
                                });
                             }
                         });
                       };
                       (function(d){
                               var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
                               if (d.getElementById(id)) {return;}
                               js = d.createElement('script'); js.id = id; js.async = true;
                               js.src = \"//connect.facebook.net/en_US/all.js\";
                               ref.parentNode.insertBefore(js, ref);
                        }(document));
                    </script>

这是我的发布脚本(这是用于离线发布,因此用户已经在 Facebook 上注销):

$oauth_uid = 'PAGE_ID_FROM_DB';
$oauth_token = 'PAGE_TOKEN_FROM_DB'
$post_url = '/'.$oauth_uid.'/feed';
if ($oauth_uid) {
$msg_body = array(  
    'access_token'  => $oauth_token,                
    'message' => 'tesing post to my page',
);

try {
$postResult = $facebook->api($post_url, 'post', $msg_body );
} catch (FacebookApiException $e) {
echo $e->getMessage();
}
}

如何解决这个问题?我看不出我的脚本有什么问题,为什么我可以发帖到我的个人 Facebook 帐户,而我不能在我的 facebook 页面上发帖?

请帮忙..

谢谢你。

4

0 回答 0