我正在通过Postman向我已经安装了应用程序的手机发送FCM推送通知 . 我启用了推送通知,应用程序在后台,我有一个有效(已确认)的Firebase推送令牌 .
我正在使用 Headers (授权:key = APP_SERVER_KEY,Content-Type:application / json)发布到https://fcm.googleapis.com/fcm/send,我的身体看起来像:
{ "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"
}]
}
一切都很好,但我没有在手机上收到通知?我怎么能解决这个问题,有谁知道我错过了什么?
3 回答
找到了解决方案!
但在我提供解决方案之前,对于可能发现自己处于类似问题的其他人来说,这里有更多背景知识 . 我能够发布并向Android设备发送通知,我能够通过Firebase控制台向Android和iOS设备发送推送,因此唯一不起作用的是将推送发送到专门的iOS设备通过POST HTTP请求(非常困惑) .
我在这里找到了这个讨论:https://github.com/firebase/quickstart-ios/issues/21 . 基本上对于iOS,我在请求体中缺少两个其他参数 . 我需要将content_available设置为true,将priority设置为high .
所以它看起来像这样:
我相信github讨论会说明这些添加的请求主体参数如何允许FCM通过APNS推送到iOS .
感谢您的回答并解释您的背景 . 在我的背景下,它无论如何都没有工作 .
所以我添加了content_available,并将“text”替换为“body”
如果有人还在与之抗争,那么我就是这样处理的 .
干杯男!
使用php脚本向iOS设备发送推送通知的替代工作解决方案 . 只需按照注释更改字段数组中键'到'的值和来自 Headers 数组的授权