我的应用程序有许多打开的图形页面。除了照片,我能够将这些页面发布得很好。我收到“PHP致命错误:未捕获OAuthException:请求此资源需要用户访问令牌。”这没有任何意义,因为我可以发布到页面没有问题。
下面是代码:
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,但是你可以使用一种方法对一个函数进行身份验证,然后对另一个函数采用另一种方式,这似乎有点愚蠢。如果可能的话,我想避免用户登录。
答案 0 :(得分:0)
发布照片的应用需要在$ 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'];
另请参阅:Developer blog post