Google Cloud Messaging(GCM)问题

时间:2012-08-08 09:19:36

标签: android

我正在使用Google Cloud Messaging(GCM)示例代码来同时支持客户端和服务器。 我已经使用Apache Tomcat& amp;成功设置了服务器。还按照教程中提供的步骤创建了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)

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

3 个答案:

答案 0 :(得分:4)

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

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

我希望它有所帮助。

答案 1 :(得分:4)

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

答案 2 :(得分:0)

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