【问题标题】:Getting MismatchSenderId while sending gcm notification after server's domain expired在服务器域过期后发送 gcm 通知时获取 MismatchSenderId
【发布时间】:2016-11-04 15:17:26
【问题描述】:

在用于发送通知域的服务器过期之前,Android 应用程序的 GCM 通知工作正常。

域名续订后,gcm 通知不起作用。如果我使用当前的 API 密钥,它会给出

401 未经授权的访问

在生成新的 API 密钥和新的 GCM id 时出现以下错误

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

我该如何解决这个问题?

【问题讨论】:

  • 新生成的API密钥是“服务器密钥”吗?
  • @ArthurThompson,是的。
  • 错误MismatchSenderId通常表示您发送的token不是为API key所属的项目生成的。您的新 API 密钥与之前的项目属于同一项目吗?
  • @ArthurThompson,是的,是同一个项目,只是密钥是新生成的。以前虽然它是 Android Key,它在服务器上工作。现在我已经生成了提供 MisMatchSenderId 的服务器密钥。 Android Key 出现 401 Unauthorized Access 错误。

标签: android push-notification google-cloud-messaging


【解决方案1】:

基于Official Google Cloud Messaging documentation,注册令牌与特定的发件人组绑定。当客户端应用注册 GCM 时,它必须指定允许哪些发件人发送消息。在向客户端应用程序发送消息时,您应该使用其中一个发件人 ID。如果您切换到其他发件人,现有的注册令牌将不起作用。

仔细检查Sender IDAPI_KEY,它们必须匹配,否则您将收到MismatchSenderId 错误。请参阅堆栈溢出帖子:Why do I get MismatchSenderId from GCM server side?。而对于401 Unauthorized Acccess 错误意味着您的API 密钥无效。问题 仅适用于在 Android 设备上生成通知键的方法 使用Google auth 令牌。

【讨论】:

  • 感谢您的回复。发件人 ID 未更改。我已经越过了检查它。我已经生成了新的 API_KEY 和 GCM reg id。但它不起作用。由于它是同一个项目,是否有可能更改发件人 ID。
  • 嗨@DhavalDesai,您能否确认您的问题是如何解决的?根据您的评论,您似乎做了正确的事情,即使这样您也遇到了来自服务器的错误。
  • @garnet,当时我正在使用两个应用程序。出现问题是因为我使用第一个应用程序的项目编号向第二个应用程序发送通知。更正项目编号解决了该问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-31
  • 2023-03-26
  • 2012-07-04
  • 2012-12-16
  • 1970-01-01
相关资源
最近更新 更多