Google Cloud Messaging API - 未经授权

Posted

技术标签:

【中文标题】Google Cloud Messaging API - 未经授权【英文标题】:Google Cloud Messaging API - Unauthorized 【发布时间】:2013-11-19 02:45:36 【问题描述】:

我正在尝试在 android 设备上运行一个简单的 PhoneGap 应用程序。所以,我已经按照所有步骤,创建了一个项目,应用程序成功地与 GCM 服务器通信并使用我的项目号获取注册 ID。

问题是我无法从服务器端与 GCM 通信。我最初是从 Perl 执行此操作的,但即使是 GCM 文档中的 curl 示例也返回“401”。

他们的 API 访问密钥已列入白名单,我已尝试将其删除并创建新的几次。甚至尝试使用浏览器密钥而不是服务器密钥。相同的结果:未经授权的访问。

以及根据当前文档从主(旧版本,而不是新的 Google Cloud)API 控制台创建的所有密钥。我找不到如何在 Google Cloud Console 中生成简单的 API 访问密钥。

正如我上面提到的,为这个项目启用了 GCM 服务,因为客户端可以连接并获取注册 ID。

还有什么帮助可以看的吗?

【问题讨论】:

对不起,错别字。我的意思是 GCM(谷歌云消息传递)无处不在,而不是 GSM 和 CGM 是的,无法想象旧的 API 密钥现在无法使用......我的问题实际上在这里得到了回答:***.com/questions/19866623/… 谢谢 如果您的问题在别处得到解答,或许您应该删除此问题。 参考这个***.com/a/21628030/1765530 【参考方案1】:

尝试使用“服务器密钥”而不是“Android 密钥”,我在使用后者时遇到了“未经授权的访问”。

您已经应用了“服务器密钥”,您可以在 Linux 或 Mac OS 的控制台上通过以下方式进行验证(请在每一行中填写数据):

api_key="xx...xxx"
reg_id="yy...yy"
curl --header "Authorization: key=$api_key" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send  -d "\"registration_ids\":[\"$reg_id\"],\"data\":\"code\":123"

【讨论】:

这里有一个详细的指南:github.com/PushAppsService/PushAppsSDK/tree/master/Android/… Google 最近更新了他们的控制台界面!您需要为您的服务器与 GCM 通信生成一个 api 密钥,并为您的 android 应用程序与您的服务器 + GCM 通信生成一个不同的 api 密钥。请参阅此图片以更好地理解imgur.com/5Ge1DWk

以上是关于Google Cloud Messaging API - 未经授权的主要内容,如果未能解决你的问题,请参考以下文章

GCM(Google Cloud Messaging)推送完全解析

Google Cloud Messaging Bridging Header 导入失败

GCM(Google Cloud Messaging)是不是需要 Google 帐户?

Google-Cloud-Messaging服务的可靠性

Google Cloud Messaging:iOS App 在后台时不会收到警报

在新的 Google Cloud Messaging 上取消注册