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,user_work_story,user_read_videos,user_list_videos ,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