Возникли проблемы с получением обновлений в реальном времени от Facebook, работающего с использованием драгоценного камня Koala...
https://github.com/arsduo/koala/wiki/Realtime-Updates
Я следовал руководству в вики. Я установил URL-адрес обратного вызова со следующим в моем файле маршрутов:
match "facebook/subscription", :controller => :facebooks, :action => :subscribe, :as => 'subscribe', :via => [:get,:post]
Затем, когда Facebook отправляет запрос на получение, я пробовал в своем контроллере следующее: /getting-started#verification-requests" rel="nofollow noreferrer">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..."
И следующее, когда я пытаюсь запустить это в консоли:
Консольная команда: @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.
Любая помощь приветствуется.
\u003C!DOCTYPE html>…
, но API ожидает, что вы ответите просто значением запроса в виде простого текста и ничего больше. Вам нужно выяснить, как настроить его, чтобы не использовать шаблон страницы по умолчанию (?) для этого конкретного ответа. - person misorude   schedule 12.07.2019render text: challenge, , content_type: 'text/plain'
но не повезло... Есть идеи? - person Gareth32   schedule 12.07.2019