Android gcmsender错误:不匹配SenderId

Android gcmsender错误:不匹配SenderId,android,push-notification,google-cloud-messaging,Android,Push Notification,Google Cloud Messaging,我正在用他们的示例应用程序测试更新的谷歌gsm云服务 下面是谷歌教程: 设备客户端已设置,我正在接收令牌,并且已经在我的开发者控制台上下载并配置了google-services.json 我知道gcmsender模块使用API密钥发送测试消息,但我收到一个错误: “结果”:[{“错误”:“不匹配的SenderId”}]} 我已经确认google-services.json使用的发送者id与开发人员控制台提供给我的相同。 我遗漏了什么?基于。当注册令牌绑定到某个发件人组时,您将收到“error:

我正在用他们的示例应用程序测试更新的谷歌gsm云服务 下面是谷歌教程:

设备客户端已设置,我正在接收令牌,并且已经在我的开发者控制台上下载并配置了google-services.json

我知道gcmsender模块使用API密钥发送测试消息,但我收到一个错误: “结果”:[{“错误”:“不匹配的SenderId”}]} 我已经确认google-services.json使用的发送者id与开发人员控制台提供给我的相同。 我遗漏了什么?

基于。当注册令牌绑定到某个发件人组时,您将收到“error:mistchsenderid”。当客户端应用程序注册GCM时,它必须指定允许哪些发件人发送消息。您应该使用其中一个发送者ID来访问客户端应用程序。如果切换到其他发件人,现有注册令牌将无法工作。
检查发送者ID和API_密钥,API密钥在Google开发者控制台中生成,用于通过GCM进行身份验证/授权,Android应用程序使用发送者ID向GCM注册物理设备,以便能够接收通知。确保API密钥属于“服务器应用程序密钥”

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

卷曲-X贴子\
-H“授权:密钥=在此处写入api\U密钥”\
-H“内容类型:应用程序/json”\
-d'{
“注册id”:[“在此处写入gcm生成的注册id”],“数据”:{“消息”:“来自Rajkumar的手动推送通知”}, “优先级”:“高”
}' \


不匹配Senderid,因为在同一设备中,您使用不同的密钥登录。要解决此问题,请卸载应用程序并再次运行,然后更新注册密钥。然后在您的终端中运行CURL脚本,我在上面发布了该脚本,它将给出成功消息,您将收到设备通知

如果您使用cordova插件
phonegap插件推送
,那么您很可能在npm
包中定义了发件人id。json
如下:

{
  "id": "phonegap-plugin-push",
  "locator": "phonegap-plugin-push",
  "variables": {
    // TODO: this sender ID should probably be moved into a config file that can be inserted by a deploy script
    "SENDER_ID": "2342343443"
  }
},
"cordova-plugin-whitelist",
"cordova-plugin-console",
"cordova-plugin-device",
"cordova-plugin-splashscreen",
"ionic-plugin-keyboard",
"ionic-plugin-deploy"

如果您没有设置发送者ID,或者您在后端更改了Google API控制台项目,并且忘记了更新应用程序的前端部分,则会发生此错误

GoogleAPI控制台中的发送者ID隐藏得很好。转到此处并向下滚动至最近的答案:


在这两个位置,发送者ID必须相同。别忘了重新部署/重新安装你的应用程序。

那么,在所有这些努力之后,完全卸载测试应用程序就是答案。看起来棉花糖比以前的版本更喜欢缓存。在使用gcmsender模块发送消息之前,我确实跟踪了API密钥和发送者Id。两人的追踪都是正确的,但实际上传递的信息显然是错误的。谢谢你的建议帮我找到了解决办法。我在测试应用程序中使用了一个测试Firebase项目(其中包含right
google services.json
文件)。然后,我尝试向另一个应用程序发送推送通知,但收到了此错误(“'error:“mistmchSenderid””)。我知道第二个应用程序绑定到另一个Firebase项目,该项目使用不同的
google services.json