我通过Fiddler测试推送GCM
接头:
User-Agent: Fiddler
Authorization: key=AIzaSyAkXfcuLLCZ-5n18wwO6XeJ13g-z9ja
Host: android.googleapis.com
Content-Length: 286
体:
{"registration_ids":["APA91bHyn8YHcH_vSuOo7_A0PMgF5SU1K0FebOFGKXYTqpN5x4eD0tVBvzQLn749TVcczN5gSjB1wqf5AzYfxFI_qskA1Nzipf-9MfdEom1PI1vkFqKIg9B8vZvPLOLozE7jaRzELuyDzpFRbO3Xh5lT-KDA"],"collapse_key":"8b990f5a-78fc-4bad-b242-ffc740a750fb","data":{"message":"message to device"}}
我有错误
Error=MissingRegistration
我的问题在哪里? 所有ID都是正确的。
答案 0 :(得分:71)
您可能忘记将标头中的内容类型指定为JSON。
Content-Type: application/json
如果省略Content-Type,则假定格式为纯文本。
对于纯文本,注册ID在名为registration_id
的参数中传递,而不是registration_ids
,这解释了您的MissingRegistration
错误。
答案 1 :(得分:2)
对于新的云消息,当您想要从服务器发送dwonstream消息时,您需要使用"来"声明目标注册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..."
}
答案 2 :(得分:2)
对于Firebase,您可以从https://firebase.google.com/docs/cloud-messaging/http-server-ref#error-codes
获取信息检查请求是否包含注册令牌(在 registration_id在纯文本消息中,或在to或 JSON中的registration_ids字段。)
答案 3 :(得分:0)
雨燕5
Content-Type