【发布时间】:2012-06-10 11:05:33
【问题描述】:
您好,我在这里看到了答案 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();
【问题讨论】:
-
不能扩展无效的token,只有有效的token可以扩展
-
很有趣,那么如何扩展一个有效的?以及它们如何变得无效
-
短期访问令牌的有效期为一到两个小时,之后它们就会过期,您必须获得一个新的。
标签: facebook oauth facebook-access-token extending