GCM错误= MissingRegistration通过JSON发送消息

tak*_*shi 33 android json push-notification google-cloud-messaging

我正在通过Fiddler测试推送GCM

头:

User-Agent: Fiddler
Authorization: key=AIzaSyAkXfcuLLCZ-5n18wwO6XeJ13g-z9ja
Host: android.googleapis.com
Content-Length: 286
Run Code Online (Sandbox Code Playgroud)

身体:

{"registration_ids":["APA91bHyn8YHcH_vSuOo7_A0PMgF5SU1K0FebOFGKXYTqpN5x4eD0tVBvzQLn749TVcczN5gSjB1wqf5AzYfxFI_qskA1Nzipf-9MfdEom1PI1vkFqKIg9B8vZvPLOLozE7jaRzELuyDzpFRbO3Xh5lT-KDA"],"collapse_key":"8b990f5a-78fc-4bad-b242-ffc740a750fb","data":{"message":"message to device"}}
Run Code Online (Sandbox Code Playgroud)

我有一个错误

Error=MissingRegistration
Run Code Online (Sandbox Code Playgroud)

我的问题在哪里?所有ID都是正确的.

Era*_*ran 79

您可能忘记将标头中的内容类型指定为JSON.

Content-Type: application/json
Run Code Online (Sandbox Code Playgroud)

如果省略Content-Type,则假定格式为纯文本.

对于纯文本,注册ID在一个名为registration_id而不是的参数中传递registration_ids,这解释了您的MissingRegistration错误.


Zep*_*hyr 5

对于新的云消息,当你想从服务器发送dwonstream消息时,你需要使用“to”来声明目标注册id。

像下面这样:

https://gcm-http.googleapis.com/gcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."
}
Run Code Online (Sandbox Code Playgroud)

  • 所以如果你想发送推送,你必须有“to:...”?如果我想从客户端向所有用户发送推送怎么办?(例如管理员客户端..) (5认同)