用户尚未授权应用程序执行此操作(#200)

cha*_*mcs 2 php facebook facebook-graph-api

嗨,我需要在Facebook粉丝页面上发布消息

这是我的代码当我运行此代码时,我有以下错误(#200)如果access_token令牌有问题,用户还没有授权应用程序执行此操作?我该如何创建access_token

<?php
    require 'facebook-php-sdk-master//src/facebook.php';

    $appId = '1617691071796143';
    $secret = 'd84420ccfe2fa7eecac50ca96936bb21';
    $returnurl = 'lankabird.com';
    $permissions = 'manage_pages, publish_stream, offline_access,read_stream';

    $fb = new Facebook(array('appId'=>$appId, 'secret'=>$secret));
    $fbuser = $fb->getUser();

    if($fbuser){

        $page_id = "1596941017191630";
        $page_access_token = "";
        //$page_access_token = "1617691071796143|d84420ccfe2fa7eecac50ca96936bb21";
        $result =  $fb->api("/me/accounts");

        // loop trough all your pages and find the right one
        if( !empty($result['data']) )
        {
           foreach($result["data"] as $page) 
           {
             if($page["id"] == $page_id)
             {
               $page_access_token = $page["access_token"];
               break;
             }
           }
        }
        else
        {
          echo "AN ERROR OCCURED: could not get the access_token. Please verify the page ID ".$page_id." exists.";
        }

        $fb->setAccessToken($page_access_token);

        // Now try to post on page's wall
        try{
            $message = array(
                'message' => "YOUR MESSAGE",
            );

            $result = $fb->api('/'.$page_id.'/feed','POST',$message);
            if($result)
            {
                echo 'Successfully posted to Facebook Wall...';
            }
        }catch(FacebookApiException $e){
            echo $e->getMessage();
        }

    }else{
        $fbloginurl = $fb->getLoginUrl(array('redirect-uri'=>$returnurl, 'scope'=>$permissions));
        echo '<a href="'.$fbloginurl.'">Login with Facebook</a>';
    }
?>
Run Code Online (Sandbox Code Playgroud)

lus*_*chn 11

publish_streamoffline_access被废弃了,因为几年,你在哪里!你们一直复制你的代码?你需要publish_actions(当然还有manage_pages你的情况)在墙上发帖,你可以在文档中阅读:https://developers.facebook.com/docs/graph-api/reference/v2.2/page/feed#发布

此外,请注意,如果您希望公开您的应用,则需要使用这些权限进行审核:https://developers.facebook.com/docs/apps/review/login

关于read_stream许可:

此权限授予在Facebook尚不可用的平台上构建Facebook品牌客户端的应用程序.例如,Android和iOS应用不会获得此权限的批准.此外,Web,桌面,车载和电视应用程序将不被授予此权限.

资料来源:https://developers.facebook.com/docs/facebook-login/permissions/v2.2#reference-read_stream

......意思是,你不会得到read_stream批准.

编辑:publish_pages如果要发布"作为页面"的内容,您现在也可以使用该权限.有关更多信息,请参阅更改日志:https://developers.facebook.com/docs/apps/changelog#v2_3_changes