Php 我的facebook tab应用程序无法将照片发布到页面';由用户而非管理员使用时的s墙

Php 我的facebook tab应用程序无法将照片发布到页面';由用户而非管理员使用时的s墙,php,facebook,facebook-graph-api,facebook-php-sdk,Php,Facebook,Facebook Graph Api,Facebook Php Sdk,好吧,这是我面临的问题: 我已经为我的facebook粉丝页面制作了一个应用程序,我的应用程序是一个facebook页面标签应用程序 我已通过以下方式将该应用程序添加到我的facebook页面: 分别输入: 以及选择要添加到的页面 当我这么做的时候,我是用我的Facebook页面管理员用户做的 我已允许管理页面和发布流和发布操作权限 这是我的密码: $objFacebook = App_Utils_Facebook::getFacebook(); $user_id = $objFa

好吧,这是我面临的问题:

我已经为我的facebook粉丝页面制作了一个应用程序,我的应用程序是一个facebook页面标签应用程序

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

分别输入:

以及选择要添加到的页面

当我这么做的时候,我是用我的Facebook页面管理员用户做的

我已允许管理页面发布流发布操作权限

这是我的密码:

$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")) );
            }
    }
所以我再说一遍,我想让普通用户访问我的应用程序和页面本身,并将其张贴在自己的墙上

我能做吗?如果没有,还有其他选择


谢谢你花时间和耐心帮我解决这个问题

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

请看

使用有效的用户
access\u令牌
/{page\u id}/feed
进行API调用应该足以发布到页面的提要


正如评论中提到的,Facebook可能不允许普通用户将照片上传到页面的相册中。您需要该页面管理员提供的
access\u令牌
(确保授予
manage\u pages
权限),检索页面访问令牌,然后以这种方式上载照片


该页面访问令牌在用户访问令牌的生命周期内应该是好的。

事实并非如此!使用任何其他用户并提供该用户访问权令牌,我无法发布到/{page_id}/photos.Ah,photos。在这种情况下,Facebook似乎不允许普通用户将照片上传到页面的相册中。您需要创建
/{page_id]/photos
使用通过具有
manage_pages
权限的用户检索到的页面访问令牌调用。好的,我已经设法获得了该访问令牌,实际上,使用管理员的访问令牌,它发布在正确的位置。但是,问题仍然存在,我是否可以存储该访问令牌以供以后使用,以便我的应用程序能够正常运行n完美?谢谢!是的。页面访问令牌(我相信)没有过期,或者确实过期,那么如果用户令牌过期,它将过期。它应该可以使用60-90天。