我在写一个简单的Facebook页面选项卡应用程序,它允许我将消息(状态更新,链接,照片和视频)发布到多个页面。Facebook Post Link作为页面问题
我遇到了Facebook API(使用PHP SDK)尝试将各种事情发布到页面时间线的问题。
当我发布状态更新时,它成功发布在页面名称下。
$pages = $this->facebook->api('me/accounts', 'GET');
$pages = json_decode(json_encode($pages), FALSE);
foreach ($pages->data as $page) {
if (in_array($page->id, $_POST['pages'])) {
$data = array(
'access_token' => $page->access_token,
'message' => Arr::get('status', $_POST)
);
$queryString = http_build_query($data);
$this->facebook->api("$page->id/feed?".$queryString, 'POST');
}
}
只要我再添加任何参数(即尝试张贴的链接)的职位是根据我的管理员帐户进行(即克里斯·海斯张贴链接到“第X”)。
$pages = $this->facebook->api('me/accounts', 'GET');
$pages = json_decode(json_encode($pages), FALSE);
foreach ($pages->data as $page) {
if (in_array($page->id, $_POST['pages'])) {
$data = array(
'access_token' => $page->access_token,
'link' => Arr::get('link', $_POST),
'message' => Arr::get('status', $_POST)
);
$queryString = http_build_query($data);
$this->facebook->api("$page->id/feed?".$queryString, 'POST');
}
}
我不知道这里发生了什么。从字面上看,唯一改变的是添加'link'参数。如果有人能帮助我,我将不胜感激!
编辑我已经获得的权限包括:电子邮件,user_about_me,user_likes,user_birthday,manage_pages,publish_stream
的问候, 克里斯
首先,写出来的使用的实际的access_token,并把它通过调试工具:HTTPS
中的API调用的第三个参数,我能够删除行发送数据后: //developers.facebook.com/tools/debug – CBroe 2013-03-07 18:04:49
它表示它是我的应用程序的访问令牌,有效期为一小时,具有以下许可:create_note电子邮件manage_pages photo_upload publish_actions publish_stream share_item status_update user_about_me user_birthday user_likes video_upload。它有我的用户ID与它关联,应该吗? – 2013-03-07 18:10:23
不,它不应该 - 你不想以用户身份发布,而是以页面的形式发布。所以得到一个页面访问令牌。 – CBroe 2013-03-07 18:14:22