#ruby-on-rails #httparty #urbanairship.com #http-status-code-400
#ruby-on-rails #httparty #urbanairship.com #http-status-code-400
Вопрос:
У меня есть приложение, которое требует отправки push-уведомлений пользователю, когда сообщение, соответствующее определенным критериям, помещается в базу данных. Я использую urban airship и HTTParty для выполнения необходимых запросов, если выполняются условия. Моя модель выглядит следующим образом:
class Urbanairship
include HTTParty
base_uri 'https://go.urbanairship.com'
headers "Content-Type" => "application/json"
basic_auth "xxxappkeyxxx", "xxxappsecretxxx"
default_params :output => 'json'
format :json
def self.push(badge, alert_message, token)
self.post('/api/push/',:body => {:aps => {:badge => badge, :alert => alert_message}, :device_tokens => [token]})
end
end
Я продолжаю получать 400 неверных запросов, когда тестирую это в консоли. Есть идеи относительно того, в чем проблема? Я знаю, что urban airship нуждается в ‘content-type:application / json’ в заголовке запроса, но это должно быть учтено в модели. Заранее спасибо,
Джек
Ответ №1:
Я сам не знаю HTTParty, но, скорее всего, если вы сможете проанализировать результат и получить фактическое тело ответа, это должно сказать вам больше. 400 может быть из-за отсутствующего content-type, как вы упомянули, или недопустимого JSON, но это также может быть из-за недопустимого токена устройства или номера значка.
Комментарии:
1. Да. Оказывается, я забыл добавить .to_json в конец моего тела. И моя аутентификация была немного перепутана. Самоанализ все это прояснил.