当前位置 : 主页 > 手机开发 > ios >

ios – 谷歌FCM服务器:200但没有通知发送到手机

来源:互联网 收集:自由互联 发布时间:2021-06-11
我正在通过Postman向我已经安装了应用程序的手机发送FCM推送通知.我启用了推送通知,应用程序在后台,我有一个有效(已确认)的Firebase推送令牌. 我正在使用标题发布到https://fcm.googleapis.
我正在通过Postman向我已经安装了应用程序的手机发送FCM推送通知.我启用了推送通知,应用程序在后台,我有一个有效(已确认)的Firebase推送令牌.

我正在使用标题发布到https://fcm.googleapis.com/fcm/send(授权:key = APP_SERVER_KEY,Content-Type:application / json),我的身体看起来像:

{ "notification": {
"title": "Portugal vs. Denmark",
"text": "5 to 1"
},
 "to": MY_PUSH_TOKEN
}

我正在通过身体获得以下200 OK响应:

{
 "multicast_id": MULTICAST_ID,
 "success": 1,
 "failure": 0,
 "canonical_ids": 0,
 "results": [{
  "message_id": "0:MESSAGE_ID"
 }]
}

一切都很好,但我没有在手机上收到通知?我怎么能解决这个问题,有谁知道我错过了什么?

找到了解决方案!

但在我提供解决方案之前,对于可能发现自己处于类似问题的其他人来说,这里有更多背景知识.我能够发布并向Android设备发送通知,我能够通过Firebase控制台向Android和iOS设备发送推送,因此唯一不起作用的是将推送发送到专门的iOS设备通过POST HTTP请求(非常困惑).

我在这里找到了这个讨论:https://github.com/firebase/quickstart-ios/issues/21.基本上对于iOS,我在请求体中缺少两个其他参数.我需要将content_available设置为true,将priority设置为high.

所以它看起来像这样:

{ "notification": {
 "title": "Portugal vs. Denmark",
 "body": "5 to 1"
},
 "content_available": true,
 "priority": "high",
 "to": MY_PUSH_TOKEN
}

我相信github讨论会说明这些添加的请求主体参数如何允许FCM通过APNS推送到iOS.

网友评论