【发布时间】:2011-12-02 12:38:43
【问题描述】:
这个问题是Facebook Real-time updated does not call our servers 的扩展版本,似乎已经死了。此外,Realtime updates internal server error on Heroku using Koala 没有帮助,因为我按照 pjaspers 的建议从 heroku 控制台订阅。
我有一个应用程序(ruby 1.9.2p290 和 Rails 3.1.3)连接到 facebook 以获取当前用户的数据。 koala gem (v1.2.1) 一切正常,但每次用户登录时我都会轮询 fb 服务器。我想使用 facebook 实时更新,我已阅读以下内容:
- Koala 手册上 fb 实时更新:https://github.com/arsduo/koala/wiki/Realtime-Updates
- Facebook 实时页面:https://developers.facebook.com/docs/reference/api/realtime/
我已将系统设置为测试模式并成功部署到heroku。我可以订阅用户对象并收到对我的服务器的 GET 请求,但 从未从 facebook 收到包含更新信息的 POST。如果我手动向我的服务器发出 POST,一切正常。
更多信息: 路线.rb
get '/realtime' => 'realtime#verify'
post '/realtime' => 'realtime#change'
生成
realtime GET /realtime(.:format) {:controller=>"realtime", :action=>"verify"}
POST /realtime(.:format) {:controller=>"realtime", :action=>"change"}
控制器(模拟版,仅用于测试它是否工作):
class RealtimeController < ApplicationController
def verify
render :text => params["hub.challenge"]
end
def change
puts params.inspect
render :nothing => true
end
end
heroku 控制台的订阅:
irb(main):004:0> @updates = Koala::Facebook::RealtimeUpdates.new(:app_id => ENV['FACEBOOK_APP_ID'], :secret => ENV['FACEBOOK_APP_SECRET'])
=> #<Koala::Facebook::RealtimeUpdates:0x00000004f5bca8 @app_id="XXXXXXX", @app_access_token="XXXXXXX", @secret="XXXXXXX", @graph_api=#<Koala::Facebook::API:0x00000004a8d7a8 @access_token="XXXXXXX">>
irb(main):005:0> @updates.list_subscriptions
=> [{"object"=>"user", "callback_url"=>"http://blah-blah-0000.herokuapp.com/realtime", "fields"=>["education", "email", "friends", "name", "website", "work"], "active"=>true}]
我不知道接下来要做什么......
- 也许我没有触发正确的变化事件?
- 如何查看我的应用的用户列表? (现在它是一个测试应用,唯一的用户就是我)
- 有人遇到过这种问题吗?
- 代码有问题吗?
- 脸书挂了?这是互联网的终结吗?
感谢您的帮助:)
【问题讨论】:
标签: ruby-on-rails-3 facebook heroku real-time