facebook扩展访问令牌
嗨我已经在这里看到了答案 http://facebook.*.com/questions/8982025/how-to-extend-access-token-validity-since-offline-access-deprecation 并给了它一个去,但我无法让它工作。facebook扩展访问令牌
我有一个过期的令牌 - 但明显只是需要一种方法来自动更新它。 这可能可以有人滑倒我一些代码
目前我想这
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的再次获得详细信息,但它似乎像Facebook要求是饼干,你不能使用的file_get_contents在你的机器上。我试图在飞行中这样做,以免打扰任何弹出窗口的用户,并且他们已经给予应用程序许可。
任何想法? Richard
哦,只是这样做似乎也没有工作。
试试这个代码
干杯 - 基本上是使用我用Facebook设置的cookie来获取新的访问令牌。所以如果我没有这个cookie,那么它不会得到一个新的令牌? –
如果你设置cookie为false,那么你也可以获得新的令牌。 – prakash
按照Removal of offline_access permission:
方案4:客户端OAuth和扩展ACCESS_TOKEN过期时间通过新的端点
使用下面的新端点,您将能够扩展 现有,未过期,短命用户的到期时间 access_token。请注意,该端点只能用于扩展短暂用户access_tokens 。如果你传递一个的access_token是有 长寿命到期时,端点将简单地传递相同的 的access_token回你不改变或延长到期 时间
一旦长住访问令牌过期后”你需要得到一个新的短命令令牌然后扩展它。
至于“如何扩展”,它是在同一职位:
https://graph.facebook.com/oauth/access_token?
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN
不能扩展标记无效,唯一有效的令牌可扩展 –
有趣那么你如何扩展一个有效的?实际上它们如何变得无效 –
短期访问令牌有效期为一到两个小时,在它们到期之后,您必须获得一个新的令牌。 – CBroe