使用 Postman 或 Node 模块的设备未收到 GCM 推送

Posted

技术标签:

【中文标题】使用 Postman 或 Node 模块的设备未收到 GCM 推送【英文标题】:GCM push not received on device with Postman or Node modules 【发布时间】:2016-06-26 11:23:58 【问题描述】:

我正在尝试设置自己的服务器来处理我的 android 手机应用程序中的 GCM 推送通知,但我遇到了一个令我困惑的问题。

我正在尝试使用Postman 发送推送通知,如下所示:

Request Type: POST

URL: https://android.googleapis.com/gcm/send

Header
  Authorization  : key=your key //Google API KEY
  Content-Type : application/json

JSON (raw) :
       
  "registration_ids":["yours"],
  "data": 
    "Hello" : "World"
   

我收到这样的回复:


  "multicast_id": 7360389950846966696,
  "success": 1,
  "failure": 0,
  "canonical_ids": 0,
  "results": [
    
      "message_id": "0:1466937961332908%e66a7eb3f9fd7ecd"
    
  ]

看起来一切正常,但设备上没有收到任何通知。我也一直在为 Node.js 尝试多个 GCM 模块,使用 same result:一切似乎都按预期进行,但没有收到任何通知。

但是,如果我使用这个简洁的小网站来测试 GCM,则会收到以下通知: gcm-notification-test-tool-android

在网站上,除了 Postman 请求中使用的信息外,没有提供其他信息,所以这对我来说意义不大。

关于如何解决这个问题以及为什么会发生的任何建议。

【问题讨论】:

您如何处理设备上的请求?请让我们看看 GCM 广播接收器的 onReceive() 函数。 @Gil 我正在使用 Android 手机,所以我所做的只是注册推送并且没有使用 onReceive 功能。 您找到解决方案了吗?我也遇到了同样的问题。 @Gil 不记得我是如何让它工作的,但请确保您已经实现了必要的通知处理程序并在 androidmanifest.xml 中获得了权限 【参考方案1】:

听起来很奇怪,那么如何解析服务器返回的 JSON 呢?无论如何,您是否使用上面发送的链接中的“消息”属性?看起来好像您发送“Hello”作为键,并且在您发送“消息”的链接上。

【讨论】:

以上是关于使用 Postman 或 Node 模块的设备未收到 GCM 推送的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Advanced REST Client 或 Postman 测试 Express/node REST API 后端?

Node.js - Http get 不会在 Postman 或浏览器中显示来自 MongoDb 查询的数据

Postman中文文档——同步

node.js - Passport 不会在浏览器请求中持续存在,可与 Postman 一起使用

使用Newman完成Postman接口自动化

Postman使用方法