Rails, Koala: facebook access token 很快就要过期了,如何让它更长

Rails, Koala: facebook access token expires very soon, how to make it longer

我对 Koala 和 Facebook 的所有这些都是新的,我遇到了 facebook 访问令牌的问题。

我必须每 60 分钟为我的应用程序生成一个新的访问令牌,因为在那之后我会收到访问令牌已过期的错误消息。

我使用 Devise + Omniauth-facebook + Koala 进行集成。

我有一个 facebook.yml 文件,里面有 app_id、秘密和我的 access_token.

为了生成访问令牌,我遵循 "Koala's read me" 表示我必须转到 Graph API Explorer 并为我的应用程序生成 access_token,我点击 "Get access token" 按钮然后 select 我想要的权限然后单击生成。然后我将访问令牌复制并粘贴到我的 facebook.yml 文件中,这样我就可以发出像

这样的请求
@graph = Koala::Facebook::API.new(FACEBOOK_CONFIG['access_token'])
        @profile = @graph.get_object("me")
        @friends = @graph.get_connections("me", "friends?fields=id,name,picture.type(normal)")

我面临的问题是我在 Graph API Explorer 生成的访问令牌总是有 60 分钟可用,在那之后我必须再次执行该过程并生成另一个新令牌以使一切再次运行.

有人可以告诉我如何生成更长时间的访问令牌吗?不只是 60 分钟...

提前致谢!

按照 https://developers.facebook.com/docs/facebook-login/access-tokens#extending

中的说明将其延长至 60 天

得到你的app_id,你的秘密和你当前的访问令牌,你可以看到当前的访问令牌去https://developers.facebook.com/tools/access_token

并复制您要扩展的应用的当前访问令牌

然后写这个url

https://graph.facebook.com/oauth/access_token?grant_type=fb_exchange_token&client_id=APP_ID&client_secret=APP_SECRET&fb_exchange_token=CURRENT_ACCESS_TOKEN

现在用您的值替换大写单词,然后将 url 复制并粘贴到浏览器中,哇哦!您有一个将在 2 个月内可用的访问令牌

顺便说一句,你会得到这样的东西 access_token=ACCESS_TOKEN&expires=5182578

只复制你申请中的ACCESS_TOKEN,不要复制'&expires'部分。

要检查一切是否正常,请转到 Debugger 并粘贴您的访问令牌,它应该会显示将在 2 个月后过期,如果您仍然看到 60 分钟,请再次检查这些步骤。

由于一些奇怪的原因(我们仍然不知道为什么),我们的访问令牌在 2 个月后仍然有效,似乎如果您的应用程序处于活动状态,它会自动更新。