因此,我使用 jQuery Ajax 来使用不记名令牌进行发布,我必须从某人的 node.js 应用程序中获取该令牌,因为我找不到有关如何使用您的首选语言获取不记名令牌以供 FCM 使用的 Google 文档仅有的。我正在使用
JSON.stringify
来准备有人在 stackoverflow 上显示的有效负载数据。我尝试过不使用,但只收到基本错误消息 Invalid_Arguments
。使用 JSON.stringify
显示更多错误信息。它指出 "to"
和“notification
”属性是未知名称,但这些是 Google 文档中使用的属性名称。那我做错了什么?
这是有人说
JSON.stringify
有效的链接。在此之前,我尝试不使用 JSON.stringify
,这导致了 Invalid JSON Payload
以及我问这个问题的原因。
{
"error": {
"code": 400,
"message": "Invalid JSON payload received. Unknown name \"to\": Cannot find field.\nInvalid JSON payload received. Unknown name \"notification\": Cannot find field.",
"status": "INVALID_ARGUMENT",
"details": [
{
"@type": "type.googleapis.com/google.rpc.BadRequest",
"fieldViolations": [
{
"description": "Invalid JSON payload received. Unknown name \"to\": Cannot find field."
},
{
"description": "Invalid JSON payload received. Unknown name \"notification\": Cannot find field."
}
]
}
]
}
}
$.post({
method: "POST",
url: "https://fcm.googleapis.com/v1/projects/floridarecycling-b91ec/messages:send",
dataType: "json",
contentType: "application/json",
headers: {
'Authorization': 'Bearer ' +
'ya29.c.ElqUBiCx...wyKqUqKlrg7yhPw'
},
data: JSON.stringify({
"to": "user_token",
"notification": {
"title": "Test",
"body": "test"
}
})
success: function () {
console.log("Success")
},
error: function (err) {
console.log("error ", err)
}
});`
headers = {
'Content-Type': 'application/json',
'Authorization': 'key=' + serverToken,
}
body = {
'notification': {'title': title,'body': message},
'to': deviceToken,
'priority': 'high',
}
以上配置对我来说效果很好,只需查看一下即可。而且我没有使用
JSON.stringify
您正在将旧版 JSON 发送到 v1 端点。
如果您使用“收件人”字段,则需要发送到旧版 Firebase 云消息传递端点,即:
https://fcm.googleapis.com/fcm/send
如果您想使用新的 Firebase 云消息传递,新格式和参数的文档位于此处:
https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages