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

使用GCM发送消息时,我会不断收到响应“MismatchSenderId”[duplicate]

汪跃
2023-03-14

我正在用GCM实现一个推送通知服务器。我用从Google API控制台获得的发送者ID(应用程序密钥)和从GCM服务获得的注册ID发送一个post请求。

发布的JSON包括一个注册ID。我总是得到相同的响应:

{
  "multicast_id":8546528660791862014,
  "success":0,
  "failure":1,
  "canonical_ids":0,
  "results":[
    {
      "error":"MismatchSenderId"
    }
  ]
}

可能是什么问题?我做错了什么?

共有3个答案

吉毅
2023-03-14

登录Google Cloud Console

请参阅所附图片中的示例:

何德寿
2023-03-14

请参阅Stack Overflow帖子Why do I get“MismatchSenderId”from GCM server side?。

从上面的网址:

仔细检查发送者ID和API_KEY,它们必须匹配,否则您将得到MismatchSenderId错误。在Google API控制台中,查看项目的URL:< br > < br > < code > https://code . Google . com/APIs/Console/# project:xxxxxxxxxxx < br > < br > xxxxxxxxx是项目ID,也是发送方ID。< br >

有些人使用“服务器html" target="_blank">应用程序的密钥”类型的密钥报告问题,但使用浏览器密钥类型成功。就个人而言,服务器密钥类型适用于我,但请尝试两者,YMMV。

阳狐若
2023-03-14

请从设备中卸载您的Android应用程序,然后再次运行该应用程序。

现在,您将获得一个新的注册Id。这可能在特定情况下解决您的MismatchSenderId问题(有时如果您更改/刷新您的API密钥,但仍然使用旧的注册密钥,就会发生这种情况)。在我的例子中,我首先为我的设备获得了注册Id,然后我更改了我的API密钥(在Google GCM服务器上),然后我得到了MismatchSenderId错误。最后,我从设备上卸载了我的Android应用程序,问题得到了解决。

 类似资料:
  • 我在Android项目中使用推送通知(GCM)。 根据GCM教程,我实现了广播接收器,并将其注册到。 这种广播接收器应该接收消息,即使我的应用程序是关闭的(不仅如果我的应用程序是在后台,但即使它是强制停止)。 但它并不像我预期的那样有效<如果应用程序关闭,则不会调用code>onReceive()方法。看来我对广播接收机的理解是正确的,问题在于我对GCM的期望。 其中一个可能的原因是,如果应用程序

  • 我想做以下事情: 感谢任何回应。 我的单元测试如下: 演示方法用于组装tlv(我们的自定义协议)对象。 关键日志如下: 创建的TcpClient工作不好,我不知道如何更正,有人能告诉我一种正确的方法吗。

  • 我使用PHP在我的服务器中通过以下功能向FCM发送通知: 响应是这样的。在文件中,https://firebase.google.com/docs/cloud-messaging/http-server-ref 多播id、成功、失败参数在响应中是必需的,但是。 这是什么原因?

  • 我想通过javascript代码发送gcm消息。为此,我们需要发布一个json对象。 gcm文档:http://developer.android.com/google/gcm/adv.html.中给出了url和json对象格式 出于测试目的,我编写了一个完美运行的Java代码。但是爪哇脚本代码不起作用。如果有人有一些示例工作代码(gcm的爪哇脚本),请发布。 脚本代码 :

  • 我有一个应用程序,可以通过谷歌云消息接收消息。我需要在收到云消息时自动启动一个活动,必要时唤醒设备。 虽然它似乎是一个糟糕的UI设计,其中一些东西被有力地显示给用户,但这个应用程序对用户的工作是至关重要的,所以当一个云消息到达时,能够清楚地查看它对用户来说是更有用的。 当收到云消息时,我尝试调用,当应用程序位于后台时,它可以正常工作。但是,一旦该应用程序从最近的应用程序列表中删除,新活动就不会启动

  • 我尝试从http://developer.android.com/guide/google/gcm/gs.html我可以将regid发送到servlet,但无法从中获取消息。 Servlet: GCMinentService: 控制台: 我怎样才能解决这个问题?