Firebase云消息传递-发布消息说无效的JSON有效负载

时间:2019-01-17 18:20:43

标签: firebase firebase-cloud-messaging

所以我使用jQuery Ajax发布必须从某人的node.js应用程序获取的承载令牌,因为我找不到有关如何使用您的首选语言来获取承载令牌的Google文档。仅用于FCM。我正在使用JSON.stringify准备有人在此处显示的有效负载数据。我尝试过没有,但是我只得到基本错误消息Invalid_Arguments。使用JSON.stringify可以显示更多错误信息。指出"to"和“ notification”属性是未知名称,但它们是Google文档中使用的属性名称。那我在做什么错了?

这是某人说JSON.stringify起作用的链接。在此之前,我在没有JSON.stringify的情况下进行尝试,导致Invalid JSON Payload以及我提出这个问题的原因。

send post request to firebase cloud messaging by ajax?

{
  "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)
            }
        });`

1 个答案:

答案 0 :(得分:0)

您正在将旧版JSON发送到v1端点。

如果您使用“收件人”字段,则需要发送到Legacy Firebase Cloud Messaging端点,即:

 https://fcm.googleapis.com/fcm/send

如果您要使用新的Firebase Cloud Messaging,请在此处获取有关新格式和参数的文档:

https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages