【发布时间】:2017-08-27 11:05:06
【问题描述】:
我正在使用 facebook graph API 来刷新用户访问令牌,因为 Facebook 每 60 天刷新一次访问令牌(如果令牌是长期存在的),并且我已经在模块中编写了代码,因为我需要在它之前刷新令牌过期了,我需要从后台工作人员或作业运行此方法,如果我的代码从控制器运行,那么在这种情况下,没问题,因为我可以使用 redirect_to 重定向 Facebook auth URL(回调 URL)但是当我从 Worker 或模块运行它会引发 redirect_to 方法的错误,因为 redirect_to 方法对模块不可用(如果我尝试使用来自 Httparty 或 Net 模块的 get 和 post 请求,那么它会将请求发送到 facebook auth url 但请求不是回到我的控制器,但如果我从浏览器点击 url,那么请求就会返回到我的combtroller ) 下面是我的模块代码:-
@oauth = Koala::Facebook::OAuth.new(Figaro.env.fb_app_id,Figaro.env.fb_secret_token,Figaro.env.fb_callback_url)
oauth_code_url = @oauth.url_for_oauth_code
redirect_to oauth_code_url
此代码适用于控制器但不适用于模块?我知道 MVC 架构和请求/响应是通过控制器完成的,但我需要重定向 Facebook OAuth URL,以便我可以从 Facebook 获取代码,然后刷新令牌。我也尝试过 HttpClient 但它也没有工作redirect_uri_callback=(redirect_uri_callback) ⇒ Object http://www.rubydoc.info/gems/httpclient/HTTPClient:redirect_uri_callback= 所以现在我该怎么办?
【问题讨论】:
-
您需要用户再次访问您的应用以首先创建一个新的短期用户令牌。
标签: ruby-on-rails ruby facebook facebook-graph-api redirect