无法使用服务器发送推送通知 API

Can't send push notifications using the server API

我正在使用新的 Firebase 平台。我正在尝试获取由我的应用服务器发送并传送到我的 iPhone 的推送通知。

我的设置工作正常,我在网站上使用 Firebase 通知区域手动发送消息,但是当我尝试使用 POST 发送消息到 https://fcm.googleapis.com/fcm/send 时,我没有收到任何消息被传送到设备。

我要发送以下内容(需要授权 headers)

{ "notification": {
    "title": "Portugal vs. Denmark",
    "text": "5 to 1"
  },
  "to" : "<registration token>"
  }

我收到来自 POST 的 200 响应,其中包含以下 body:

    {
  "multicast_id": 5511974093763495964,
  "success": 1,
  "failure": 0,
  "canonical_ids": 0,
  "results": [
    {
      "message_id": "0:1463685441784359%3ad254b53ad254b5"
    }
  ]
}

如果我尝试直接通过 Firebase 网站发送到此设备,它可以工作,但上面的表格 post 不行。不知道从这里去哪里!

如果APIreturns你message_id这意味着你的消息已经被正确接受,它最终会被传送到设备。

  • Android,消息会尽快发送(当然前提是设备已连接)。

  • 在 Apple 设备上,如果应用程序关闭或在后台,通知将通过 Apple 基础设施发送,并且可以根据 Apple 文档相应延迟。

要减少发送到 Apple 设备的优先消息的延迟,您可以使用 priority 参数。 更多详情:https://firebase.google.com/docs/cloud-messaging/concept-options#setting-the-priority-of-a-message

在 iOS 上,priority 字段似乎是强制性的。

{   
  "to": "cHPpZ_s14EA:APA91bG56znW...",
  "priority": "high",
  "notification" : {
    "body" : "hello!",
    "title": "afruz",
    "sound": "default"
  }
} 

我发现 message 字段是必需的,priority 字段用于传递带有 POST 的消息。

message 在 Firebase 控制台中不是必需的(并且标记为可选)。

我决定在没有 priority 的情况下在请求正文中添加 notification 标签。

回顾一下: