当前位置: 首页 > 知识库问答 >
问题:

Google FCM服务器:200但未向电话发送通知

陈畅
2023-03-14

我正在通过邮递员发送一个FCM推送通知到我的手机,已经安装了应用程序。我启用了推送通知,应用程序在后台,我有一个有效的(确认的)Firebase推送令牌。

我在https://fcm.googleapis.com/fcm/send上发布了标题(authorization:key=app_server_key,content-type:application/json),我的正文如下所示:

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

我得到了以下200 OK的body响应:

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

一切看起来都很好,但我手机上没有收到通知?我该如何排除故障,有人知道我错过了什么吗?

共有1个答案

冯开诚
2023-03-14

找到解决办法了!

但在我提供解决方案之前,这里有一些更多的背景情况,供其他可能遇到类似问题的人参考。我能够向Android设备发布并发送通知,并且能够通过Firebase控制台向Android和iOS设备发送推送,所以唯一不起作用的是通过POST HTTP请求向iOS设备发送推送(相当令人费解)。

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

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

我相信github的讨论说明了那些添加的请求体参数是如何允许FCM通过APNS for iOS进行推送的。

 类似资料:
  • 我正在尝试用新的Firebase服务向我的android设备发送推送通知。我注册并安装了一个应用程序,同时我把接收通知所需的所有代码都放在了android应用程序中。通过Firebase控制台,我可以向我的应用程序发送一个通知,然后它就会被接收并显示出来。现在我想编写一个java独立服务器,向所有设备发送通知。这是我当前的代码: 这是我从他们的服务器上得到的结果: 不幸的是,简单地移除“to”标记

  • 我有一个简单的netty连接池和一个简单的HTTPendpoint来使用该池向ServerSocket发送TCP消息。相关代码看起来是这样的,客户端(NettyConnectionPoolClientApplication)是: 和服务器(ServerSocketRunner) 虚拟通道池处理程序和虚拟客户端处理程序只是打印出发生的事件,因此它们不相关。当服务器和客户端启动并且我向测试endpoi

  • XMLHttpRequest 对象用于和服务器交换数据。 向服务器发送请求 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send(); 方法 描述 open(method,url,async) 规定请求的类型、URL 以及是否异步处理

  • 我的一个EC2实例上有一个graphql服务器正在运行。我也有AWS appsync运行,但目前它只与几个Lambda集成。 我想将我的Appsync连接到graphql服务器,这样Appsync将作为特定查询/变化的代理。 因此,从客户端来看,它将如下所示: 客户端将一个查询发送到APPESNC,让我们假设它看起来像这样: Appsync已经定义了一个查询,它被配置为在graphql服务器上代理