我对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 :(得分:0)
问题解决了它在Facebook的范围请求中要求进行身份验证,因为我决定使用JavaScript SDK - 然后,这是解决方案:
FB.getLoginStatus(function(response) {
if ( ! response.authResponse ) {
FB.login(function(response) {
// handle the response if needed
}, {scope: 'publish_actions, publish_stream'});
}
});
谢谢! : - )