Возникли проблемы с получением обновлений в реальном времени от Facebook, работающих с использованием камня Koala ...
https://github.com/arsduo/koala/wiki/Realtime-Updates
Я следовал руководству в вики.Я настроил URL обратного вызова со следующим в моем файле маршрутов:
match "facebook/subscription", :controller => :facebooks, :action => :subscribe, :as => 'subscribe', :via => [:get,:post]
Затем, когда Facebook делает запрос на получение, я попробовал оба следующих в моем контроллере, чтобы «встретитьвызов », как требуется в их документах (https://developers.facebook.com/docs/graph-api/webhooks/getting-started#verification-requests):
class FacebooksController < ApplicationController
def subscribe
verify_token = "VERIFY_TOKEN"
if params["hub.mode"] == "subscribe" && params["hub.verify_token"] == verify_token
params["hub.challenge"]
else
false
end
end
end
Я также пытался (с измененным маршрутом к нужному действию):
class FacebooksController < ApplicationController
def realtime_request?(request)
((request.method == "GET" && params['hub.mode'].present?) ||
(request.method == "POST" && request.headers['X-Hub-Signature'].present?))
end
def subscription
if(realtime_request?(request))
case request.method
when "GET"
challenge = Koala::Facebook::RealtimeUpdates.meet_challenge(params,'SOME_TOKEN_HERE')
if(challenge)
render :text => challenge
else
render :text => 'Failed to authorize facebook challenge request'
end
when "POST"
p params['object']
render :text => 'Thanks for the update.'
end
end
end
end
Результатом каждый раз являетсяследующая ошибка на их панели управления при попытке подписаться:
The URL couldn't be validated. Response does not match challenge, expected value="2090763306", received="\u003C!DOCTYPE html>\n\u003Chtm..."
И следующее при попытке запустить это в консоли:
Console cmd: @updates.subscribe("user", "feed", "https://www.bettrplay.com/facebook/subscription" , "YOUR_VERIFY_TOKEN")
Ответ консоли: Koala::Facebook::ClientError: type: OAuthException, code: 2201, message: (#2201) response does not match challenge, expected value="773833772", received="\u003C!DOCTYPE html>\n\u003Ch...", x-fb-trace-id: GbtUB+FcLJS [HTTP 400]
Я не уверен, в чем проблема, поскольку я не вижу, что возвращается в Facebook, и я все еще немного не уверен в том, что мне следует использоватькак VERIFY_TOKEN.
Любая помощь приветствуется.