Rails 4 / Koala:如何刷新长访问令牌?

时间:2016-03-05 10:20:15

标签: ruby-on-rails ruby facebook facebook-graph-api koala

使用Rails 4和Koala gem版本2。 我有个人Facebook 页面(不是个人资料)。 当我在我的网站发布新帖子时,我想自动将其发布在我的 Facebook页面上。 我正在使用考拉宝石,但我在访问令牌时遇到了一些问题。

访问https://developers.facebook.com/tools/explorer/我获得短期令牌。此令牌仅在2小时后过期。

我的目标是获得长期令牌。 我创建了一个新的Facebook应用程序,我获得了客户端ID 客户端密码

访问此https://graph.facebook.com/oauth/access_token?client_id=MY-CLIENT-ID&client_secret=MY-CLIENT-SECRET&grant_type=fb_exchange_token&fb_exchange_token=MY-SHORT-LIVE-TOKEN我获得长期令牌。

现在我可以使用我的长期令牌在我的页面上发布:

user = Koala::Facebook::API.new long_live_access_token
page_access_token = user.get_connections('me', 'accounts').first['access_token']
page = Koala::Facebook::API.new page_access_token
page.put_connections("me", "feed", message: "I am posting on my page!ok!")

它似乎有效,但我的问题是长期令牌会在60天后到期,所以我需要刷新它。 我找不到刷新长期令牌的解决方案。很明显,我不能每60天重复整个过程!

想法?

1 个答案:

答案 0 :(得分:0)

来自官方文档:

  

这些令牌(长寿)每天刷新一次   使用您的应用程序的人向Facebook的服务器发出请求。如果不   请求发出后,令牌将在约60天后到期   人必须再次通过登录流程才能获得新的   令牌。

永不过期的令牌是页面令牌。