【发布时间】:2013-04-07 18:39:47
【问题描述】:
我对 Facebook PHP SDK 有疑问。它总是抛出那个异常。我尝试了这里列出的许多解决方案,但对我没有任何效果。
Facebook 似乎返回给我有效的访问令牌,因为我在我的应用程序的仪表板中使用调试工具对其进行了测试。
我的情况是什么?
我想通过调用静态函数发布简单的内容到用户墙:
function social_publish($network, $title, $message, $link = '', $image = '') {
global $_config;
// Initialize Facebook SDK
$facebook = new Facebook(array(
'appId' => $_config['fb_app']['app_id'],
'secret' => $_config['fb_app']['app_security_key']
));
// Set data
$attachment = array(
'name' => $title,
'caption' => $title,
'message' => $message,
'link' => $link,
'picture' => $image,
'actions' => array('name' => 'Test', 'link' => 'Link')
);
try {
$access_token = $facebook->getAccessToken(); // returns valid access token
$uid = $facebook->getUser(); // always return 0
$result = $facebook->api( '/' . $_config['fb_profile'] . '/feed/', 'post', $attachment); // $_config['fb_profile'] procudes 'me' in this case
} catch (FacebookApiException $e) {
echo $e->getMessage();
}
}
请注意:我不在本地环境中工作。
【问题讨论】:
-
调试工具对访问令牌说了什么?如果您得到当前用户为“0”,则表示您没有有效的用户令牌。
-
当我通过调试工具测试访问令牌时,它只返回我的应用程序的名称。
-
它应该为您提供与令牌关联的用户 ID(如果存在)。您应该检查用户是否已登录并已授予您的应用程序的权限。也许尝试developers.facebook.com/tools/explorer 来获取有效的令牌。
标签: facebook facebook-graph-api oauth facebook-php-sdk