我已经成功使用以下代码发布到我的粉丝页面AS页面:
//Call Facebook API
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $appSecret,
'cookie' => true,
));
$fbPost = array('access_token' => $fbToken, 'message' => $string2 ,'name' => $string2, 'description'=> $description,'link'=> $unshort);
try{
//This is to post a link!
$postResult = $facebook->api('/xxxxxxxxxxxxxxx/feed', 'POST', $fbPost );
echo 'Posted';
echo '<br />';
} catch (Exception $e){
echo 'Didnt Work';
echo '<br />';
echo $e->getMessage();
}
然而,我的帐户被Facebook暂时阻止(不要问......恶意竞争对手)。在清理完情况后,我的帐户禁令已被解除,我可以在我的粉丝页面上发布,但我上面的PHP脚本只会在页面上发布,而不是页面本身。
禁令解除后,我不得不更新我的访问权限,但这样做是正常的。由于我的代码没有改变,我猜测它与我更新访问令牌的方式有关,但一切似乎都是有序的。
关于为什么我的代码现在作为我(管理员)发布而不是作为页面本身的任何想法?
谢谢!
答案 0 :(得分:1)
我认为这是因为您的访问令牌缺少manage_pages
。尝试调试您的访问令牌。
根据Page Feed documentation,具有publish_actions权限的页面访问令牌可用于代表该页面发布新帖子。要获取页面访问令牌,您需要先获取用户访问令牌并要求manage_pages
权限。获得用户访问令牌后,您可以通过图表API获取页面访问令牌,向/{user-id}/accounts
发出GET请求。这将为您提供一个页面访问令牌,允许您作为页面发布。
对于页面访问令牌,您可以执行以下操作:
$userAccounts = $facebook->api('/me/accounts');
这将为您提供以下输出:
{
"data": [
{
"category": "Product/service",
"name": "Sample Page",
"access_token": "{access-token}",
"id": "1234567890",
"perms": [
"ADMINISTER",
"EDIT_PROFILE",
"CREATE_CONTENT",
"MODERATE_CONTENT",
"CREATE_ADS",
"BASIC_ADMIN"
]
},
}
更多详细信息,请访问:Page Tokens。