Этот вопрос представляет собой расширенную версию Обновление в реальном времени Facebook не вызывает наши серверы , которые, похоже, не работают. Кроме того, Внутренняя ошибка сервера обновлений в реальном времени на Heroku с использованием Koala бесполезна, потому что я подписываюсь с консоли heroku, как предлагал pjaspers .
У меня есть приложение ( ruby 1.9.2p290
и Rails 3.1.3
), которое подключается к facebook для получения данных от текущего пользователя. Все работает нормально с gem koala (v1.2.1), но я опрашиваю серверы fb каждый раз, когда пользователь входит в систему. Я хотел бы использовать обновления facebook в реальном времени, и я прочитал следующее:
Я установил систему в тестовом режиме и успешно развернул ее на heroku. Я могу подписаться на объект пользователя и получить запрос GET на свой сервер, но POST с обновленной информацией никогда не поступает от facebook . Если я отправлю 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'])
=> #>
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}]
Я не знаю, что делать дальше ...
Спасибо за помощь :)