60天后扩展facebook访问令牌

时间:2012-05-22 07:38:07

标签: php jquery facebook authorization deprecated

是否可以延长60天访问令牌?我在某处读到,当用户访问您的网站时,它可以扩展吗? (另外60天)?这是完全相同的标记还是新标记?

我基本上想要像以前一样使用offline_access。我有一个小的jquery脚本,在他们自己的网站上显示用户的Facebook墙。

我也读到了这个:

""您需要让用户在60天内再次重新认证以获取新令牌。" - - 不。只要允许使用publish_stream,您就不需要用户的令牌。在用户从应用列表中删除应用程序之前 - 即使在100年后,您也可以发布消息。所以,不,没有理由在应用程序密钥和秘密之外另外保留任何令牌 - zerkms 4月5日9:02"

这是真的吗?显然我不需要发布权限,我只想读取流权限。

- 更新:

来自FB的报道:

"如果您想刷新仍然有效的长期存在的access_token,则必须首先获得一个新的短期用户access_token,然后在下面调用相同的端点。返回的access_token将具有新的长期到期时间,但是,access_token本身可能与先前授予的长期access_token相同或不同,"

那么你究竟如何获得一个全新的令牌呢? FB.login方法只返回现有(未过期)令牌。有任何想法吗?

4 个答案:

答案 0 :(得分:3)

没有。 你不能延长令牌通过60天,你只能延长短期令牌,当你这样做时,你会获得一个60天的长期令牌。

您也可以拥有所有权限,但除非您拥有有效的访问令牌,否则您无法发出api请求(嗯,您可以但会获得异常)。

我不确定如何获得60天令牌,如果它是客户端(然后扩展它)或服务器端,但根据Removal of offline_access permission官方帖子:

  

方案3:服务器端OAuth开发人员

     

...

     

如果在仍然存在有效的长期用户access_token的情况下进行呼叫   用户,从第二次调用返回的用户access_token可能是   相同或可能已经改变,但在任何一种情况下,到期时间都会   设置为很长的到期时间。

或者

  

方案4:客户端OAuth并通过新端点扩展Access_Token到期时间

     

...

     

请注意,端点只能用于延长寿命   用户access_tokens。如果你传递了一个持久的access_token   到期时间,端点将简单地传递相同的access_token   在不改变或延长到期时间的情况下回复您。

     

...

答案 1 :(得分:3)

用于扩展访问令牌到期日期使用,

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 

有关详细信息,请查看http://developers.facebook.com/roadmap/offline-access-removal/

答案 2 :(得分:1)

您可以使用PHP SDK

使用以下代码
$extendedToken = $facebook->setExtendedAccessToken();
$token = $facebook->getAccessToken();
print_r($token);

用户登录后并为您提供了所需的权限。只需使用Graph API调用

,您还可以检索其他扩展访问令牌,例如Page
$facebook->api('<PAGE_ID>?fields=access_token');

这将返回页面的扩展访问令牌。只要您要求获得manage_page权限。

答案 3 :(得分:0)

Sujathan是正确的 - 有一个Facebook页面记录了自更改以来要做的事情:http://developers.facebook.com/roadmap/offline-access-removal/

向以下网址发送获取请求:

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

此外,它看起来像是重复:How to extend access token validity since offline_access deprecation