我的情况和我的拥有:
现状:
我在一个网站上创建页面,我的代码应该从我的Facebook帐户中提取最后一些帖子并将其显示在该页面上。
我已经做过的事情:
然后我在我的模型中创建了该代码:
oauth = Koala::Facebook::OAuth.new(APP_ID, APP_SECRET)
new_access_info = oauth.exchange_access_token_info self.get_token <- here i pull token from DB
new_access_token = new_access_info["access_token"]
new_access_expires_at = DateTime.now + new_access_info["expires"].to_i.seconds
self.update_all(:token => new_access_token) ***<- saving token in db***
self.update_all(:exp => new_access_expires_at) ***<- saving expiration of token in db***
@facebook ||= Koala::Facebook::API.new(self.get_token)
所以,我第一次将我的短期令牌直接放在db中,所以我的代码可以从那里拉出来,然后,当我重新加载页面时,我得到了新的,长期令牌(它有截止日期12/01 / 2015)。
BUT!每次重新加载页面时,我都会获得新令牌,但是有SAME到期日期(当我从我的页面复制令牌并将其粘贴到调试器中时,FB调试器说我一样)。
我甚至试图在不同的日子里这样做,因为我读到了某个地方&#34;令牌翻新期是每天一次,但是:
令牌总是不同,但失效日期始终相同。
我需要什么:
更新该令牌或编写代码,以便在没有我方操作的情况下自动更新令牌,因为没有登录窗口或类似的东西。它应仅适用于服务器端。
有什么想法?已经阅读了很多信息和类似的问题,但大多数问题都与用户交互有关,比如以适当的形式登录等等,所以 - 没有运气:/
答案 0 :(得分:0)
你可以尝试这种方法。
@oauth = Koala::Facebook::OAuth.new(ENV['fb_app_id'], ENV['fb_app_secret'])
oauth_access_token = @oauth.get_app_access_token
@graph = Koala::Facebook::API.new(oauth_access_token)