当前位置: 首页 > 知识库问答 >
问题:

为什么我从GCM服务器端获得“MismatchSenderId”?

贲功
2023-03-14

我正在尝试为我的Android应用程序创建一个推送服务,我遵循Google GCM的文档和示例:

我可以注册/注销我的Android应用程序。从我的服务器端,我可以看到我注册了一个订阅,但当我尝试从服务器向我的Android应用程序发送消息时,我总是收到以下错误:

发送消息到设备#0时出错:MismatchSenderId

对于我的Android应用程序,我使用SENDER_ID=2000000000001。

对于我的服务器端,正如谷歌所说,我使用API_KEY=aizxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我遵循了这份文件:

http://developer.android.com/guide/google/gcm/demo.html

我也在我的谷歌API面板中启用了GCM,但我会收到那个恼人的错误消息。

我如何解决这个问题?

共有3个答案

汤昊
2023-03-14

请在终端中运行下面的脚本

curl -X POST \
-H "Authorization: key=  write here api_key" \
-H "Content-Type: application/json" \
-d '{ 
"registration_ids": [ 
"write here reg_id generated by gcm"
], 
"data": { 
"message": "Manual push notification from Rajkumar"
},
"priority": "high"
}' \
https://android.googleapis.com/gcm/send

如果成功或失败,它将给出消息

车靖琪
2023-03-14

不使用数字ID时会发生不匹配。项目ID不是发件人ID!!我花了9个小时才弄明白。对于谷歌造成的所有混乱,请检查以下链接以获取数字id。

https://console.cloud.google.com

而不是

https://console.developers.google.com

希望能有帮助!!

更新:-事情又变了。现在,发件人id与firebase一起使用。

去https://console.firebase.google.com然后选择您的项目。在设置下-

它工作了!

程磊
2023-03-14

您的服务器是否使用GCM服务器返回给您的应用程序的新注册ID?如果试图向旧C2DM服务器发出的注册ID发送消息,我会遇到这个问题。

并再次检查发送方ID和API_密钥,它们必须匹配,否则将出现不匹配的SenderId错误。在Google API控制台中,查看项目的URL:

https://code.google.com/apis/console/#project:xxxxxxxxxxx

xxxxxxxxx是项目ID,它是发送者ID。

并确保API Key属于服务器应用程序的Key(具有IP锁定)

 类似资料:
  • Edit1: 在reply recieving方法中,这次我,而不是只读取,我发现api没有打开。所以我从开发人员控制台打开了api。现在,在设置之后,我现在得到如下 “传输https://www.googleapis.com/drive/v3/about时出错-服务器回复:错误请求” 并从返回

  • 问题内容: 我正打算实施GCM。我编写了一个测试代码以了解其工作原理,但在响应中不断出现错误400。 我正在用Java(JDK 7)编写。 在这个主题上,我遵循了这一原则。我在那里修改了给定的代码,并将ObjectMapper的用法更改为Gson。 这是我对数据对象的代码: *我在服务器参考中看到,在HTTP协议中,我可以只发送带有registration_ids的消息。(所有其他均为可选) 这是

  • 本文向大家介绍为什么我们需要微服务容器?相关面试题,主要包含被问及为什么我们需要微服务容器?时的应答技巧和注意事项,需要的朋友参考一下 要管理基于微服务的应用程序,容器是最简单的选择。它帮助用户单独部署和开发。您还可以使用Docker将微服务封装到容器的镜像中。没有任何额外的依赖或工作,微服务可以使用这些元素。

  • 为何使用虚拟服务器? 虚拟服务器是自奶粉以来最好的东西! 你可能会问我们为什么要发表这样的声明。 原因是它们引入了灵活性。 使用虚拟服务器,您可以创建一个定制的策略并将其包装在一个功能单元中。 虚拟RADIUS服务器在概念和功能上与真实虚拟服务器(如使用VMware或VirtualBox进行虚拟化的服务器)非常不同。 RADIUS中的虚拟服务器可以实现简单而强大的配置,因为它们可以实现策略的清晰分

  • 我试图在Java做简单的聊天应用程序,但我得到这个错误。怎么了?我该怎么修好它?for循环中有一些错误? 我得到这个错误 线程“main”java.lang.IndexOutoFboundsException:索引0超出长度0的界限,位于java.base/jdk.internal.util.preconditions.OutoFbounds(preconditions.java:64)位于jav

  • 我收到的错误: 这是我的代码 我尝试了几种不同的方法来读取此文件,但我无法弄清楚为什么会发生这种情况。我使用的扩展名.rtf,.txt,认为这可能是文件本身的问题。该文件仅包含以下内容: