使用Koala和Ruby on Rails获取Facebook应用访问令牌

时间:2016-03-27 10:12:49

标签: ruby-on-rails facebook-graph-api koala koala-gem

我一直在尝试使用我的RoR应用程序连接到Facebook API一天没有任何运气。我正在使用Ruby on Rails和Koala。

如果我尝试连接如下:

graph = Koala::Facebook::API.new(User_Token)

然后没有问题。 (从https://developers.facebook.com/tools/access_token/获得用户令牌的地方)

问题是用户令牌过期。我知道有一种方法可以扩展应用用户令牌,但我宁愿不诉诸于此。

相反,我正在尝试验证我的应用程序以获取APP访问令牌,我可以使用它来代替用户令牌(根据https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens。请注意这是指App Access Token,而不是App在第一个链接中引用的令牌。)

为了获得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 未定义的方法`url_for_oauth_code'为nil:NilClass

请注意,我对获取用户的访问令牌不感兴趣;我想要一个用于我的应用程序,以便我可以连接到api a la:

graph = Koala::Facebook::API.new(App_Access_Token)

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

因此,您的路线似乎是错误的,因为它会转到EventsController#index。你能发布一些日志和相关路线吗?

相关问题