经过大量的阅读和谷歌搜索后,我似乎已经为Google Cloud Messaging进行了完整的设置,以发送推送通知。我缺少的链接是我必须用来定位应用的 Reference_Ids 。我创建了一个项目,并将我的应用程序添加到其中。
当我向GCM发送推送请求时,我得到以下回复:
{"multicast_id":7952352701122753715,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}
StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Alt-Svc: quic=":443"; ma=2592000; v="35,34"
Vary: Accept-Encoding
Transfer-Encoding: chunked
Accept-Ranges: none
Cache-Control: max-age=0, private
Date: Wed, 21 Dec 2016 16:12:43 GMT
Server: GSE
Content-Type: application/json; charset=UTF-8
Expires: Wed, 21 Dec 2016 16:12:43 GMT
}
错误显示为“InvalidRegistration”。
所以我的问题是:
答案 0 :(得分:2)
InvalidRegistration表示您使用的注册令牌(注册ID)无效(不存在,格式错误):
检查传递给服务器的注册令牌的格式。确保它与客户端应用程序通过Firebase Notifications注册时收到的注册令牌相匹配。不要截断或添加其他字符。
确保您使用正确且相应的注册令牌到您要发送邮件的设备。为了测试,我建议也使用Firebase Console,这样你就可以看到错误是否仍然存在。
对于Android,您可以retrieve the registration token致电:
FirebaseInstanceID.getToken()
然后,您可以选择将令牌存储到App Server。
答案 1 :(得分:-1)
您应该使用Api server_key。
转到firebase
控制台 - >点击你的项目 - >点击齿轮图标 - > project_setting - > cloud_messaging