Я хочу отправлять push-сообщения с помощью Firebase Cloud Messaging.Все работает, кроме одного.Я хочу сохранить ответ (см. Ниже) из Firebase, чтобы обновить профиль пользователя в базе данных.Допустим, ответ возвращает ошибку, я хочу отправить этот ответ обратно в мою базу данных.
Чтобы отправить push-сообщение, я использую этот скрипт:
var key = 'my-key';
var to = 'to-key';
var notification = {
'title': 'Portugal vs. Denmark',
'body': '5 to 1',
'icon': 'firebase-logo.png',
'click_action': 'http://localhost:8081'
};
fetch('https://fcm.googleapis.com/fcm/send', {
'method': 'POST',
'headers': {
'Authorization': 'key=' + key,
'Content-Type': 'application/json'
},
'body': JSON.stringify({
'notification': notification,
'to': to
})
}).then(function(response) {
console.log(response);
}).catch(function(error) {
console.error(error);
})
Ответ, который я получаюот Firebase есть:
Мой вопрос - как мне сохранить (или отправить) этот ответ на мой сервер Coldfusion.Я думал о переписывании сценария для Coldfusion, например:
<cfscript>
objResponse = {
'message':{
'to':'SOME_TOKEN',
'notification':{
'title': 'Portugal vs. Denmark',
'body': '5 to 1',
'icon': 'firebase-logo.png',
'click_action': 'localhost:8081'
}
}
}
</cfscript>
<Cfdump var="#objResponse#" >
<cfoutput >#SerializeJSON(objResponse)#</cfoutput>
<cfhttp url="https://fcm.googleapis.com/fcm/send" method="post" result="objGet">
<cfhttpparam type="header" name="Accept" value="application/json" />
<cfhttpparam type="header" name="Authorization" value="key=MY_KEY">
<cfhttpparam type="header" name="Content-Type" value="application/json" />
<cfhttpparam type="body" value='#SerializeJSON(objResponse)#'/>
</cfhttp>
Но это дает мне 400 неверных запросов:
Вкл. https://firebase.google.com/docs/cloud-messaging/http-server-ref#interpret-downstream Я обнаружил, что применяется только для запросов JSON.Указывает, что запрос не может быть проанализирован как JSON или содержит недопустимые поля (например, передача строки, в которой ожидается число).Точная причина сбоя описана в ответе, и проблема должна быть устранена до того, как запрос может быть повторен.
Поэтому я понимаю, что это как-то связано с отправляемым JSON-запросом, но я не могувыяснить, в чем проблема.