【问题标题】:PushSharp - GCM Authorization FailedPushSharp - GCM 授权失败
【发布时间】:2017-03-28 22:47:03
【问题描述】:

使用 Pushsharp v4.0.10(nuget 包),我在向 Android 设备发送推送通知时收到错误 GCM Authorization Failed

似乎问题 574 (https://github.com/Redth/PushSharp/issues/574) 中提出的错误已编译到 nuget 包中,但我仍然收到此错误。

这可能与 Firebase 云消息传递的引入有关吗?

还有人使用 GCM 成功了吗?

【问题讨论】:

  • 您是否使用了正确的服务器密钥?
  • 我相信是这样 - 自从几个月前我们上次成功使用 push sharp 以来,我没有更改我的代码。自从引入 FCM 以来,google play 控制台/google api 控制台发生了变化,我不能不再查找服务器密钥的位置。你能指导我在哪里可以获得这个密钥吗?
  • 我已经添加了答案。让我知道它是否有效。

标签: notifications push firebase-cloud-messaging pushsharp


【解决方案1】:

到目前为止,GCM 仍然可用。但是,强烈建议新用户改用 FCM。无论哪种方式,对于 GCM 和 FCM,您都必须使用从 Firebase 控制台生成的服务器密钥。 GCM docs 中有一条可见的注释说:

从 2016 年 9 月开始,只能使用“设置”面板的 Cloud Messaging 标签在 Firebase 控制台中创建新的服务器密钥。现有项目需要新建服务器密钥,可以在Firebase console中导入,不会影响现有配置。

许多用户都遇到了授权错误,有些用户也有一个旧项目。请参阅我的回答 here 了解更多详情。

【讨论】:

  • 我已将我的项目导入 Firebase。我发送推送通知的服务器应用程序现在使用 Firebase 控制台中的服务器密钥 -> 项目设置 -> 云消息传递。但是,我现在收到错误 MismatchSenderId。使用“Firebase 云消息传递令牌”会呈现相同的结果。似乎情况稍微好一点。我在 Google Developer Console 中的应用在“链接的发件人 ID”部分中有来自 Firebase 控制台的发件人 ID。
  • 在 Google API Manager 中,我可以看到生成的服务器密钥(“服务器密钥(由 Google 服务自动创建)”)。我看到一条评论建议添加限制(我的 IP 地址),但这没有帮助。
  • @ErnieP 该限制是可选的,但建议使用。 MismatchSenderId 仅应在您使用与注册令牌无关的发件人 ID 时出现。您能否提供一个链接,您可以在其中看到链接的发件人 ID?
  • 我的应用代码注册了发件人 ID 为 83XXXXXX37 的推送通知。在 GooglePlay Developer Console 中我的应用程序的服务和 API 部分中,列出了这个 83XXXXXX37 发件人 ID,以及另外两个发件人 ID(54XXXXXX73、57XXXXXX54)。我发送推送通知的服务器代码使用 54XXXXXX73 发件人 ID,以及 Firebase 中该发件人 ID 的相应服务器密钥。似乎我需要以某种方式创建一个使用 83XXXXXX37 发件人 ID 的 firebase 项目,但我看不到任何编辑选项。我没有要导入的带有该发件人 ID 的项目。
【解决方案2】:

应用代码中使用的发件人 id 需要与发件人 id Firebase Cloud Message Console 及其对应的“Firebase Cloud Messaging 令牌”匹配。

感谢@AL 的帮助。

【讨论】:

  • 不客气。请务必在此处接受正确答案,以便正确标记您的帖子。干杯!
猜你喜欢
  • 1970-01-01
  • 2015-01-02
  • 2020-04-03
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多