我正在使用 Google Cloud Messaging (GCM) 处理推送通知。我可以按照本教程设置服务器和客户端。
该服务器在 Apache Tomcat6.0 (localhost) 和 Google APIs(API 级别 17)上的 Android 模拟器上运行。我有一个发件人 ID 和 API 密钥。从模拟器运行时,我收到一条成功的设备连接消息。此后不久,从服务器发送消息时显示以下错误。
com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 401()
com.google.android.gcm.server.Sender.sendNoRetry(Sender.java:211)
com.google.android.gcm.server.Sender.send(Sender.java:125)
com.google.android.gcm.demo.server.SendAllMessagesServlet.doPost(SendAllMessagesServlet.java:83)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
从其他帖子中,我了解到错误的 API 密钥是罪魁祸首。但就我而言,我确保我使用的是 API 控制台中的正确控制台。
顺便说一句,当我运行模拟器时,我看到一条消息“将 regId 发送到服务器”。什么是注册ID?它与发件人ID不同;看起来像一个编码的。
有什么突破吗?
编辑
问题终于解决了!Ant 未正确构建 WAR 文件。因此 API 密钥几乎不会更新。发现这个错误真是一场噩梦。感谢大家的投入!