【发布时间】:2016-07-22 12:00:24
【问题描述】:
Google 的GCM (Google Cloud Messaging) 服务突然返回 401 请求发送 Android 推送通知有什么原因吗?调用看起来像这样
curl --header "Authorization: key=<my_android_key>" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"to\":\"/topics/my_topic\", \"data\":{\"category\":\"help\", \"title\":\"Test\", \"text\":\"Test\", \"param\":\"\"}}"
结果是
<HTML>
<HEAD>
<TITLE>Unauthorized</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Unauthorized</H1>
<H2>Error 401</H2>
</BODY>
</HTML>
更新:
Google 列出了四种可能的causes for this error:
- HTTP 请求中缺少授权标头或语法无效。
- 作为密钥发送的项目编号无效
- 密钥有效,但 GCM 服务已禁用。
- 请求来自未在服务器密钥 IP 中列入白名单的服务器。
我检查了有问题的API密钥here的有效性,它似乎是无效的。问题是为什么?到目前为止它一直有效。啊。 :-/
【问题讨论】:
-
API 密钥已更改/删除?另外,也许添加一些显示请求的代码。
-
我们不小心删除了账号,稍后又恢复了,会不会导致token失效? :-/ 不确定。
-
也许可以尝试为启用 GCM 服务的项目创建一个新的服务器 API 密钥。
-
只需将新的 API 密钥放入您的应用即可。
标签: android push-notification google-cloud-messaging