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


Upload photo to facebook page as non admin

我正在努力寻找一种方法来做到这一点。也许这是不可能的,但我没有找到任何资源说这不能做。所以我想把它贴在这里。

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

所以我这样写。但只有管理员才有可能。(我硬编码admin用户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...
}

是否有任何可能的方法为应用程序提供页面管理权限或强制api使用管理访问令牌来发布?

如果你想让你的用户在粉丝页上发帖,为什么要使用page access token ?

简单地将$args中的access_token替换为具有publish_stream权限的用户的access token

文章将在上发布,代表用户通过您的应用程序

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

$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