一天以来,我一直在尝试使用我的 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,而不是第一个链接中提到的 App 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 未定义方法 `url_for_oauth_code' for nil:NilClass
请注意,我对为用户获取访问令牌不感兴趣;我想要一个用于我的应用程序,以便我可以连接到 api a la:
graph = Koala::Facebook::API.new(App_Access_Token)
任何帮助将不胜感激。