GCM(Google 云消息)returns 突然 401
GCM (Google Cloud Messaging) returns suddenly 401
来自 Google 的 GCM (Google Cloud Messaging) 服务突然 returns 请求发送 Android 推送通知的 401 是什么原因?调用看起来像这样
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:
- 授权 header HTTP 请求中缺少或语法无效。
- 作为密钥发送的项目编号无效
- 密钥有效但禁用了 GCM 服务。
- 请求来自未列入服务器密钥 IP 白名单的服务器。
我检查了问题API密钥的有效性here,它似乎是无效的。问题是为什么?到目前为止它曾经工作过。啊。 :-/
您似乎没有为您的应用程序使用来自开发者控制台的服务器密钥。
不确定为什么使用 Android 键 发送推送通知停止工作,因为它以前可以工作。我设法使用 服务器密钥 而不是 Android 密钥 向 Android 应用程序发送推送通知这个:
curl --header "Authorization: key=<my_server_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\":\"\"}}"
显然这似乎是 Android 的正确方法:
Why Android key (api key) is invalid or that key is deprecated by GCM server?
我发现一个网站说 "Google made a change that stopped Android Keys from working for GCM/FCM for security reasons"
https://groups.google.com/forum/#!msg/firebase-talk/4lCPr-UIuY0/ShWZk6z2AAAJ
所以答案似乎是使用 "Server Key" 发送 Android GCM 消息(而不是 "Android Key")。
来自 Google 的 GCM (Google Cloud Messaging) 服务突然 returns 请求发送 Android 推送通知的 401 是什么原因?调用看起来像这样
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:
- 授权 header HTTP 请求中缺少或语法无效。
- 作为密钥发送的项目编号无效
- 密钥有效但禁用了 GCM 服务。
- 请求来自未列入服务器密钥 IP 白名单的服务器。
我检查了问题API密钥的有效性here,它似乎是无效的。问题是为什么?到目前为止它曾经工作过。啊。 :-/
您似乎没有为您的应用程序使用来自开发者控制台的服务器密钥。
不确定为什么使用 Android 键 发送推送通知停止工作,因为它以前可以工作。我设法使用 服务器密钥 而不是 Android 密钥 向 Android 应用程序发送推送通知这个:
curl --header "Authorization: key=<my_server_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\":\"\"}}"
显然这似乎是 Android 的正确方法: Why Android key (api key) is invalid or that key is deprecated by GCM server?
我发现一个网站说 "Google made a change that stopped Android Keys from working for GCM/FCM for security reasons" https://groups.google.com/forum/#!msg/firebase-talk/4lCPr-UIuY0/ShWZk6z2AAAJ
所以答案似乎是使用 "Server Key" 发送 Android GCM 消息(而不是 "Android Key")。