2012-05-22 74 views
9

是否可以延长60天访问令牌?我读过一个地方,当用户访问您的网站时,它可以扩展? (再过60天)?这是同一个标记还是一个新的标记?在60天后扩展Facebook访问令牌

我基本上想像过去那样使用offline_access。我有一个小jquery脚本,在用户的Facebook上显示自己的网站。

我也看过这样的:

“”你需要让用户在60天内再次重新认证抢到一个新的令牌。” ---没了,只要有publish_stream猫 - 你不。在用户从应用程序列表中删除应用程序之前,您可以发布消息,即使在100年后也是如此。因此,没有理由将任何令牌附加到应用程序密钥和秘密zerkms上。 9:02“

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

--update:从FB

报价:

“如果你想刷新仍然有效,长期的access_token,您将获得第一的access_token然后新建一个短命的用户请在下面调用相同的端点,返回的access_token将有一个新的长期到期时间,但是,access_token本身可能会或可能不会与以前授予的长期存取权限相同。所以,您究竟如何得到一个全新的令牌? FB.login方法只是返回现有的(未过期的)令牌。有任何想法吗?

+1

我希望@zerkms已经测试并验证了他的“100年”声明... ;-P – deceze

回答

3

第 你不能延长令牌传递60天,你只能延长短命令,当你这样做时,你会得到一个长达60天的寿命。

你也可以拥有所有的权限,但除非你有一个有效的访问令牌,那么你不能做API请求(当然,你可以但会得到一个异常)。

我不知道你是如何获得60日的道理,如果它的客户端(再延长的话)或服务器端,而是根据Removal of offline_access permission官爵:

方案3:服务器端的OAuth开发

...

如果调用时,同时还有对于 用户,返回的用户从这个第二个呼叫马ACCESS_TOKEN有效的长期用户的access_token y是 相同或可能已更改,但在任一情况下,到期时间将 设置为较长的​​到期时间。

或者

方案4:客户端OAuth和扩展ACCESS_TOKEN过期时间通过新的端点

....

请注意,端点只能用于延长短暂的 用户access_tokens。如果您传递具有长期生存时间的access_token,则端点将简单地将相同的access_token 传回给您,而不更改或延长到期时间。

...

+0

谢谢,如果我们有50天的时间,用户来到应用程序并想扩展它?那么不可能呢?用户是否必须在令牌过期后回来? “ – Wesley

+0

”如果你想刷新一个仍然有效的长期访问令牌,你必须先获得一个新的短期用户access_token,然后调用下面的同一个端点,返回的access_token将有一个新的长期到期时间,然而,access_token本身可能会或可能不会与以前授予的长期存取令牌相同“ 因此,您究竟如何得到一个全新的令牌? FB.login方法只是返回现有的(未过期的)令牌。有任何想法吗? – Wesley

+0

(1)它说“access_token本身可能与以前授予的长期access_token相同或不一样”,请问您是否可以扩展它? (2)也许使用服务器端身份验证,这样你可以在任何时候获得60多天的时间。 –

1

您可以使用PHP SDK使用下面的代码看看

$extendedToken = $facebook->setExtendedAccessToken(); 
$token = $facebook->getAccessToken(); 
print_r($token); 

用户登录并提供了所需的权限后。您还可以检索其他扩展的访问令牌,像页面,只需使用图形API调用

$facebook->api('<PAGE_ID>?fields=access_token'); 

这将返回该页面的扩展访问令牌之后。只要您已经要求提供manage_page权限。