【发布时间】:2016-07-14 18:12:52
【问题描述】:
一天来,我一直在尝试使用我的 RoR 应用连接到 Facebook API,但没有任何运气。我正在使用 Ruby on Rails 和 Koala。
如果我尝试如下连接:
graph = Koala::Facebook::API.new(User_Token)
那么就没有问题了。 (用户令牌是从https://developers.facebook.com/tools/access_token/获得的)
问题是用户令牌过期了。我知道有一种方法可以扩展应用程序用户令牌,但我不想诉诸于此。
相反,我正在尝试对我的应用程序进行身份验证以获得一个应用程序访问令牌,我可以使用它来代替用户令牌(根据https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens。请注意,这是指应用程序访问令牌,而不是应用程序令牌在第一个链接中提到)。
为了获得 App Access Token,我按照教程在我的控制器中提供了以下代码:
id = <my app id>
secret = <my app secret>
callbackUrl = "http://localhost:3000/events/appcallback"
@ouath = Koala::Facebook::OAuth.new(id, secret, callbackUrl)
redirect_to @oauth.url_for_oauth_code()
在我的 routes.rb 我有:
match "events/appcallback" => "events#appCalledBack", via: :get
这纯粹是为了测试回调是否有效。
那时我的意图是:
App_Access_Token = @oauth.get_access_token(params[:code])
但是我得到一个错误: EventsController#index 中的 NoMethodError nil:NilClass 的未定义方法 `url_for_oauth_code'
请注意,我对为用户获取访问令牌不感兴趣;我想要一个用于我的应用程序,以便我可以连接到 api:
graph = Koala::Facebook::API.new(App_Access_Token)
任何帮助将不胜感激。
【问题讨论】:
标签: ruby-on-rails facebook-graph-api koala koala-gem