0

好吧,这就是我所面临的:

我为我的 facebook 粉丝页面制作了一个应用程序,我的应用程序是 Facebook Page Tab 应用程序。

我已通过以下方式将应用程序添加到我的 Facebook 页面:

http://developers.facebook.com/docs/appsonfacebook/pagetabs/

分别输入:

http://www.facebook.com/dialog/pagetab?app_id=YOUR_APP_ID&next=YOUR_URL

并选择要添加到哪个页面。

完成此操作后,我与我的 Facebook 页面管理员用户一起完成了此操作。

我已经允许manage_pagespublish_streampublish_actions权限。

这是我的代码:

$objFacebook = App_Utils_Facebook::getFacebook();

    $user_id = $objFacebook->getUser();
    $objFacebook->setFileUploadSupport(true);


    if(isset($_REQUEST['pageId'])){
        $arrPriv = $objFacebook->api("/".$_REQUEST['pageId']."/", array('fields'=>'access_token'));
        $link = 'http://link/here/'.$this->objAnunt->id;
    }


    $privacy = json_encode(array('value'=>'SELF'));

    if(isset($arrPriv['access_token'])){
        $access_token = $arrPriv['access_token'];
    }else{
        $access_token = $objFacebook->api("/".$_REQUEST['pageId']."/", array('fields'=>'access_token'));
    }


    if($user_id){
        try{
            $ret=$objFacebook->api("/".$arrPriv['id']."/photos",'POST',array(
                    'source'=>'@link/to/pic.jpg',
                    'message'=>$strTitle.'

                               For more details click here  '.$link,
                    'access_token'=>$access_token,
                    'privacy'=>$privacy
                                                )
            );
            unlink('link/to/pic.jpg');
        }catch(FacebookApiException $e) {
            echo $e;
        }
    }else{
            $permissions = $objFacebook->api("/me/permissions");
            if( !array_key_exists('publish_stream', $permissions['data'][0]) ||
            !array_key_exists('manage_pages', $permissions['data'][0])) {
                // We don't have one of the permissions
                // Alert the admin or ask for the permission!
                header( "Location: " . $objFacebook->getLoginUrl(array("scope" => "publish_stream, manage_pages")) );
            }
    }

所以我再重复一遍,我想让普通用户访问我的应用程序,并让页面本身发布在它自己的墙上。

我可以做吗?如果没有,还有其他选择。

感谢您的时间和耐心帮助我解决这个问题!

4

1 回答 1

1

据我所知,您不需要manage_pages发布到页面的权限。

请参阅本文档

/{page_id}/feed使用有效用户进行 API 调用access_token应该足以发布到页面的提要。


正如评论中提到的,Facebook 可能不允许普通用户将照片上传到页面的相册。您需要access_token来自该页面的管理员(确保manage_pages已授予权限),检索页面访问令牌,并以这种方式上传照片。

该页面访问令牌应该适用于用户访问令牌的生命周期。

于 2013-04-04T13:05:29.653 回答