加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何使用来自SERVER(!)的Koala Gem更新/延长F

发布时间:2020-12-17 04:33:13 所属栏目:百科 来源:网络整理
导读:我的情况和我所拥有的: Rails应用程序(Rails的最新版本) 考拉宝石(最新版本) 1(一)Facebook用户(例如 – 这是我),就是这样,没有更多的用户(!) 没有任何FB登录表单/类似内容的网站页面 现在的情况: 我在一个网站上创建页面,我的代码应从我的Facebook帐户中
我的情况和我所拥有的:

> Rails应用程序(Rails的最新版本)
>考拉宝石(最新版本)
> 1(一)Facebook用户(例如 – 这是我),就是这样,没有更多的用户(!)
>没有任何FB登录表单/类似内容的网站页面

现在的情况:

我在一个网站上创建页面,我的代码应从我的Facebook帐户中提取最后的帖子并在该页面上显示.

我已经做了什么:

>我添加了考拉宝石
>然后我在FB的开发者帐户下创建了应用程序,并授予该应用程序对我的个人资料的完全访问权限(相同的个人资料 – 开发人员和我希望提取帖子)
>然后我从这里创建了应用访问令牌(https://developers.facebook.com/tools/accesstoken) – 当我调试它时,FB告诉我,这个令牌是一个短期令牌,在1小时后到期.
>然后我在我的模型中创建了该代码:

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) .

但!当我每次重新加载页面时,我会获得新令牌,但是有SAME到期日期(FB的调试器说我一样,当我从我的页面复制令牌并将其粘贴到调试器中时).

我甚至试图在不同的日子里做这件事,因为我读到“某个地方”令牌翻新期是每天一次,但是:

令牌总是不同,但有效期始终相同.

我需要的:

更新该令牌或编写代码,以便自动更新令牌而无需我的操作,因为没有登录窗口或类似的东西.它应该只在服务器端工作.

有什么想法吗?已经阅读了很多信息和类似的问题,但大多数问题都与用户交互有关,比如以适当的形式登录等等,所以 – 没有运气:/

解决方法

你可以尝试这种方法.
@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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读