将照片作为非管理员上传到Facebook页面

时间:2013-01-17 10:06:50

标签: php facebook facebook-graph-api facebook-php-sdk facebook-apps

我很难找到办法做到这一点。可能这是不可能的,但我没有找到任何资源说这不能做。所以我想发布在这里。

我正在开发一个Facebook应用程序,它有照片上传功能。我试图做的是,当用户上传图像时,图像将自动添加到我的粉丝页面。

所以我这样经历了。但它只适用于管理员。 (我硬编码管理员用户ID)

$fanpageId  = 562**23; //My Facebook fanpage ID
$adminFbId  = 100***12; // facebook user ID of admin (Fanpage)
    try{              
         $pagesInfo = $facebook->api("/100***00/accounts");               
    }
catch (FacebookApiException $e){              
     echo $e;     
 }

     foreach($pagesInfo["data"] as $page) {
     if($page["id"] == $fanpageId) {
        $page_access_token = $page["access_token"];
        break;
    }
}

if( !empty($page_access_token) ) {
    $args = array(
        'access_token'  => $page_access_token,
        'message'       => "I'm a Page from test!"
    );
    $post_id = $facebook->api("/$fanpageId/feed","post",$args);
    // sucess...
}

是否有任何可能的方式为App提供页面管理员权限或强制api使用管理员访问令牌发布?

2 个答案:

答案 0 :(得分:1)

如果您希望用户在粉丝专页上发帖,为什么使用page access token

只需将access_token中的$args替换为access token用户的publish_stream {/ 1}}。

该帖子将在<粉丝页上代表用户通过您的应用发布。

答案 1 :(得分:1)

非常感谢我认为我正在取得一些进展。我做了你说的,现在消息发布在粉丝页面上。然后我尝试上传图片。这就是我做的事情

$args = array(
        'access_token'  => $access_token,
    'image' => '@/my/upload/file/path/'.$fileName
    );

try{          
    $post_id = $facebook->api("/".$fanpageId."/photos","post",$args);             
}
catch (FacebookApiException $e){
    echo $e;              
}

但它抛出一个例外:OAuthException: An unknown error has occurred

我将用户权限设置为:publish_stream,photo_upload,user_photos