1

我对考拉和 Facebook 的所有这些都是新手,我在使用 facebook 访问令牌时遇到了问题。

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

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

我有一个 facebook.yml 文件,其中有 app_id、secret 和我的 access_token。

为了生成访问令牌,我遵循“考拉读我”说我必须去Graph API Explorer并为我的应用程序生成 access_token,我点击“获取访问令牌”按钮然后选择我想要的权限并然后点击生成。然后我将访问令牌复制并粘贴到我的 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分钟...

提前致谢!

4

2 回答 2

1

获取您的 app_id、您的秘密和您当前的访问令牌,您可以看到当前访问令牌转到https://developers.facebook.com/tools/access_token

并复制要扩展它的应用程序的当前访问令牌

然后撰写此网址

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' 部分。

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

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

于 2015-11-24T16:21:40.253 回答
0

如https://developers.facebook.com/docs/facebook-login/access-tokens#extending所述,将其延长至 60 天

于 2015-02-12T21:42:21.540 回答