张贴一张照片作为开放图facebook page
我有一个拥有许多开放图形页面的应用程序。我能够发布这些网页很好,除了照片。我得到一个“PHP致命错误:未捕获的OAuthException:需要用户访问令牌来请求此资源。”这是没有任何意义的,因为我可以发布到饲料作为页面没有问题。张贴一张照片作为开放图facebook page
继承人的代码:
require_once ('facebook.php');
$fb = new Facebook(array(
'appId' => 'XXX',
'secret' => 'XXX',
));
$fb->setFileUploadSupport(true);
$args = array('message' => 'Photo Caption');
$args['image'] = '@' . realpath("testpic.jpg");
$data = $fb->api("/PAGEID/photos", "post", $args);
print_r($data);
?>
这是可能的,而无需用户登录到吗?我读过你可以请求页面access_token作为一个用户,但是你可以使用一种方法来验证一个函数,然后用另一种方式验证另一个函数,这似乎有点愚蠢。如果可能,我想避免用户登录。
发布照片的应用程序需要在$ args中包含一个用于管理页面的访问令牌。这也被称为“页面访问令牌”或“页面令牌”。
$args['access_token'] = $access_token;
我得到这样一个访问令牌的方式是从谁是页的管理员用户(我)获得manage_pages,publish_stream
权限。然后:
$page_info = $facebook->api('/'.$PAGE_ID.'?fields=access_token');
和:
$access_token = $page_info['access_token'];
(我也不应该)如果我已经授权作为应用程序获得用户令牌。 – AdamB 2012-08-16 17:12:14
在我的示例中,我没有使用用户令牌,而是使用页面令牌。我已经编辑了我的答案来澄清这一点。这也在我的答案中引用的博客文章中。基本上,我传递了一个允许manage_pages和publish_stream的页面标记。您是否将正在使用的令牌提交给[调试器](https://developers.facebook.com/tools/debug)?调试器说它有什么权限? – 2012-08-17 23:53:08
什么是没有意义的是我可以发布到Facebook页面作为页面相关联的应用程序没有用户访问令牌(如在您的示例中),但对于不起作用的照片。这是Facebook的API不一致。 – AdamB 2012-11-07 00:39:17
提交我不想一个bug太多https://developers.facebook.com/bugs/371884269549068 – AdamB 2012-08-15 05:32:10