【问题标题】:Google Cloud Messaging (GCM) issue谷歌云消息 (GCM) 问题
【发布时间】:2012-08-08 09:19:36
【问题描述】:

我正在为客户端和服务器使用 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)

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

【问题讨论】:

  • 将服务器 url 和发件人代码设置为您的 android 项目代码。

标签: android


【解决方案1】:

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

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

希望对你有帮助。

【讨论】:

    【解决方案2】:

    Google 最近已将其 api 控制台更新为 Google Cloud Console。简而言之,您需要创建一个 Android 应用程序并选择通过 Web 服务器访问 API。 this service has a detailed guide for that

    【讨论】:

      【解决方案3】:

      这是未授权的返回码。您的服务器应用程序未通过 GCM 服务器的身份验证。您是否在开发者控制台中为自己生成了 API 密钥?

      【讨论】:

      • 我已尝试使用特定项目的服务器和浏览器 API 密钥,并且还能够使用模拟器注册设备。只有当我尝试向模拟器发送消息时,才会显示上述异常
      • 401 错误表示身份验证问题,我认为您应该尝试重新发布您的 API 密钥:wiki.pushapps.mobi/display/PUSHAPPS/Android+Getting+Started
      猜你喜欢
      • 1970-01-01
      • 2012-06-29
      • 1970-01-01
      • 1970-01-01
      • 2016-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多