嗨,我在这里看到了答案 http://facebook.stackoverflow.com/questions/8982025/how-to-extend-access-token-validity-since-offline-access-deprecation 并试了一下,但我是无法让它工作。
我有一个过期的令牌 - 但显然只需要一种自动更新它的方法。这可能吗有人可以给我一些代码吗
目前我正在尝试这个
try {
$result = $facebook->api(
'/me/permissions/',
'get',
array('access_token' => $token)
);
}
catch(FacebookApiException $e) {
echo "token invalid";
$facebook->setAccessToken($token);
echo $facebook->getExtendedAccessToken();
}
但我仍然得到
token invalid{"error":{"message":"Error validating access token: Session has expired at unix time 1338858000. The current unix time is 1338985046.","type":"OAuthException","code":190,"error_subcode":463}}
任何帮助。谢谢理查德
嗨,感谢您的帮助 我仍然登录到 facebook,并且我已经授予了我的应用程序的权限,所以我只需要一个新密钥。
我试过这个
$facebook = new Facebook(array(
'appId' => FACEBOOKAPPID,
'secret' => FACEBOOKSECRET,
'cookie' => true,
));
$url = $facebook->getLoginUrl(array('canvas'=>1,'fbconnent'=>1,'scope'=>'offline_access,publish_stream,email,user_about_me,user_birthday,user_website'));
file_get_contents($url);
$fb_session = $facebook->getUser();
echo $fb_session.'<br />';
$token = $facebook->getExtendedAccessToken();
echo $token.'<br />';
您似乎需要“登录”到 facebook 才能再次获取详细信息,但您似乎不能使用 file_get_contents,因为 facebook 需要您机器上的 cookie。我正在尝试即时执行此操作,以免通过任何弹出窗口打扰用户,而且他们已经授予了应用程序权限。
有任何想法吗?理查德
哦,只是这样做似乎也不起作用。
$facebook = new Facebook(array(
'appId' => $this->fbApiKey,
'secret' => $this->fbSecretKey,
'cookie' => true,
));
$token = $facebook->getAccessToken();