【问题标题】:Getting INVALID_SENDER on one device while its working with another GCM android在一台设备上获取 INVALID_SENDER,同时与另一台 GCM android 一起使用
【发布时间】:2013-03-26 05:59:21
【问题描述】:

我正在关注Android Push Notifications using Google Cloud Messaging (GCM) 以使用我的应用程序实现 GCM,当我尝试使用另一个设备(Galaxy S) 对其进行测试时,它在单个设备上运行良好( Galaxy Tab 7') 它生成错误。

handleRegistration:registrationId = null,error = INVALID_SENDER,未注册 = null

这是我得到的日志

V/GCMRegistrar(5649): Registering app  my_maypackage of senders APA91bHvzZbO_nyYvaA_QRGDaV-wRAYKjt0qJSQmzPUi2unqG7j0OGuyhVY1A3zh-ZfnA0XT0ffgyKypVJ_5owLZvZBNGARpTBkBg9ED8gVVCDejaIpShghq_tXGhMnFQEufwdCL1ibm
V/GCMRegistrar(5649): Setting registeredOnServer status as true until 2013-04-02 11:02:07.847

V/GCMBroadcastReceiver(5649): onReceive: com.google.android.c2dm.intent.REGISTRATION
V/GCMBroadcastReceiver(5649): GCM IntentService class: my_maypackage.GCMIntentService
V/GCMBaseIntentService(5649): Acquiring wakelock
V/GCMBaseIntentService(5649): Intent service name: GCMIntentService-980172650021-7

D/GCMBaseIntentService(5649): handleRegistration: registrationId = null, error = INVALID_SENDER, unregistered = null
D/GCMBaseIntentService(5649): Registration error: INVALID_SENDER
I/GCMIntentService(5649): Received error: INVALID_SENDER
V/GCMBaseIntentService(5649): Releasing wakelock

注意:两台设备都配置了相同的 gmail 帐户。

【问题讨论】:

    标签: android google-cloud-messaging


    【解决方案1】:

    日志显示不正确的发件人 ID。它应该取自 Google api 项目 url。例如

    https://code.google.com/apis/console/b/0/#project:65464654646546

    那么 65464654646546 是发件人 ID。

    【讨论】:

    • 该死的......我使用的是基于 url 中的文本的“项目 ID”,这可能是新 API 控制台中 url 的编写方式。啊!!!现在一切都已修复,谢谢:)
    • 那么你在哪里将 id 投影为数字。 My 是基于文本的,例如 vigilant-brace-234。还是我应该使用这个?
    • 好的,我找到了获取数字项目 ID 的方法 - 只需转到经典(原始)控制台,它仍然存在!
    • 项目 ID 也可在新控制台的主仪表板部分下使用。
    • 我收到了 INVALID_SENDER,尽管我有正确的发件人 ID,你知道我收到它的任何其他原因吗?
    【解决方案2】:

    对我来说,从控制台的 API 部分启用“Google Cloud Messaging for Android”有什么作用:

    【讨论】:

      【解决方案3】:

      [添加到@spanjeta 的答案:]

      问题在于,获得项目编号并非易事,因为 Google 一直在修改开发者控制台。虽然 Google 很友好地为开发人员提供了为他们的项目声明友好/文本 ID 的可能性,但他们没有更新 GCM 文档,因为这不能替换 GCM 客户端中的项目 ID。 当你这样做时(给项目一个文本名称/ID) - 你不能使用它,因为你会得到一个 INVALID_SENDER 错误。 您必须以某种方式获得纯数字项目 ID。

      那么如何获得项目编号呢?您需要以某种方式访问​​旧的开发人员控制台。 以下方式有效(目前): 哟去开发者控制台→您的项目→APIS→Google Cloud Messaging for Android→配额 然后将使用以下 URL 打开一个新的、旧的 google devloper 控制台选项卡: https://code.google.com/apis/console/b/0/?noredirect#project:YOUR_PROJECT_NUMBER:配额

      然后,在您的应用中使用 YOUR_PROJECT_NUMBER 作为 GCM SENDER_ID。

      【讨论】:

        【解决方案4】:

        我只是想和你分享一下我刚才遇到了同样的问题。

        GCM 推送之前工作得非常好,什么都没有改变,突然间,我们的用户抱怨没有收到推送通知。

        所以我确实检查了所有 StackOverflow 线程。这个问题,仍然无法解决问题(应用 id / 键都正确输入,代码非常好,甚至在 Google 演示中试用过,等等等等)

        所以我绝望地去了开发控制台并禁用了 GCM,然后重新启用它......一切正常!

        【讨论】:

          【解决方案5】:

          项目仪表板顶部显示项目 ID 和项目编号。

          Project ID: aaaa-bbb-000000 Project Number: 00000111112
          

          您必须使用数字项目编号作为 SENDER_ID。

          【讨论】:

            【解决方案6】:

            也许您需要更改 GOOGLE_PROJ_ID

            第一

            第二

            祝你好运!!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-10-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多