我正在尝试使用Graph api更新Facebook用户状态。我的代码是
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'appId' =>'389694921095423',
'secret' =>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
'cookie' => true
));
$access_token = $facebook->getAccessToken();
echo($access_token);
$me = null;
try
{
$uid = $facebook->getUser();
$me = $facebook->api('/me');
echo "Welcome User: " . $me['name'] . "<br />";
//access permission
$permissions_needed = array('publish_stream', 'read_stream', 'offline_access', 'manage_pages');
foreach($permissions_needed as $perm)
{
if( !isset($permissions_list['data'][0][$perm]) || $permissions_list['data'][0][$perm] != 1 )
{
$login_url_params = array(
'scope' => 'publish_stream,read_stream,offline_access,manage_pages',
'fbconnect' => 1,
'display' => "page",
'next' => 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
);
$login_url = $facebook->getLoginUrl($login_url_params);
header("Location: {$login_url}");
exit();
}
}
//Access permission
$post_id = $facebook->api("/$uid/feed", "post", array("message"=>"Hello World!"));
if(isset($post_id))
{
echo "A new post to your wall has been posted with id: $post_id";
}
}
catch (FacebookApiException $e)
{
echo($e);
}
?>
问题是它显示运行时错误,如致命错误:未捕获OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。我已经生成了Access Tocken。我必须使用它来删除此异常 提前致谢
答案 0 :(得分:32)
尝试更改行:
$me = $facebook->api('/me');
到
$me = $facebook->api('/'.$uid);
如果您没有使用最新版本,如果您刚刚升级了sdk并且它造成了麻烦,请尝试升级您的sdk,而不是尝试降级版本并检查。
答案 1 :(得分:5)
清除缓存&amp; cookies(如果您正在测试或开发应用程序) 和 请按以下步骤操作: -
try
{
$fb_user_info = $facebook->api('/me');
} catch (Exception $ex)
{
$facebook->destroySession();
$params = array(
'scope' => 'YOUR_PERMISSIONS',
'redirect_uri' => 'YOUR_SITE_URL'
);
$fb_login_url = $facebook->getLoginUrl($params);
header("Location:" . $fb_login_url);
}