#ruby-on-rails #json #ruby #curl
#ruby-на-рельсах #json #рубиновый #завиток
Вопрос:
У меня есть метод в ROR:
params = "{'to':'#{registration_ids}','notification':{'body':'#{message}'} 'priority':'10'}"
system("curl -X POST --header 'Authorization: key=MY_KEY' --Header 'Content-Type: application/json' https://fcm.googleapis.com/fcm/send -d '#{params}'")
я получаю сообщение: JSON_PARSING_ERROR: неожиданный символ (t) в позиции 1
Комментарии:
1. вы могли бы попробовать это:
require 'json'
а затем в новой строкеparams = JSON.parse("{'to':'#{registration_ids}','notification':{'body':'#{message}'} 'priority':'10'}")
Ответ №1:
Ваш JSON недопустим — я бы предложил использовать jsonlint в будущем.
require 'json'
params = {to: registration_ids, notification: {body: message}, priority:10}.to_json
system("curl -X POST --header 'Authorization: key=MY_KEY' --Header 'Content-Type: application/json' https://fcm.googleapis.com/fcm/send -d '#{params}'")
Вам не хватает a ,
между уведомлением и приоритетом. Кроме того, json действительно должен содержать двойные кавычки (см. Стандарты JSON), и вы можете сделать это, запустив .to_json
метод для хэша…