我正在努力寻找一种方法来做到这一点。也许这是不可能的,但我没有找到任何资源说这不能做。所以我想把它贴在这里。
我正在开发一个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