2

我正在为客户端和服务器使用 Google Cloud Messaging (GCM) 示例代码。我已经使用 Apache Tomcat 成功设置了服务器,并且还按照教程中提供的步骤创建了 Android 应用程序 (apk)。

在 Apache Tomcat 上部署 war 文件后,我可以从模拟器注册。我为 Tomcat 服务器提供了一个公共 IP,并且能够使用 GPRS 从移动浏览器查看“注册屏幕”。

我已按照 GCM 教程中提供的所有步骤进行操作。

GCM 的示例代码有问题吗?

当我单击按钮将消息发送到注册设备时,出现以下异常:

com.google.android.gcm.server.InvalidRequestException:HTTP 状态代码:401 com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:177) com.google.android.gcm.server.Sender.send (Sender.java:121) com.google.android.gcm.demo.server.SendAllMessagesServlet.doPost(SendAllMessagesServlet.java:82) javax.servlet.http.HttpServlet.service(HttpServlet.java:637) javax.servlet.http .HttpServlet.service(HttpServlet.java:717)

我浏览了一些类似的帖子,但没有找到任何关于这个问题的确切解决方案。任何建议/提示都会有所帮助。

4

3 回答 3

4

Google 最近已将其 api 控制台更新为 Google Cloud Console。简而言之,您需要创建一个 Android 应用程序并选择通过 Web 服务器访问 API。这项服务有一个详细的指南

于 2013-12-11T11:26:09.823 回答
4

我在使用 tomcat 作为服务器时遇到了同样的问题,为了修复它我修改了这个文件

WebContent/WEB-INF/classes/api.key用从 google api 控制台中提取的 API 密钥替换内容。

我希望它有所帮助。

于 2012-09-25T02:37:19.347 回答
0

That's the Not Authorized return code. Your server app is not authenticated to the GCM server. Did you generate yourself an API key in the developer console?

于 2012-08-08T18:59:01.053 回答