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

2019-06-14 13:21发布

我想为我的Android应用程序创建的推送服务,于是我跟着谷歌GCM对此事文档和示例:

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

发送错误消息发送到装置#0:MismatchSenderId

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

而对于我的服务器端为谷歌表示,我使用API​​_KEY = AIzxxxxxxxxxxxxxxxxXxxXxxXxxxXXXXXxxxxs

我跟着这个文件:

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

我已经启用了我的谷歌API面板GCM过,但我会得到恼人的错误消息。

我怎样才能解决这个问题呢?

Answer 1:

难道你的服务器使用由服务器GCM到您的应用程序返回的新注册ID? 我有这个问题,如果试图将消息发送到由老的C2DM服务器给出了注册ID。

而且还仔细检查发件人ID和API_KEY,它们必须匹配,否则你会得到MismatchSenderId错误。 在谷歌API控制台,看看你的项目的网址:

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

该xxxxxxxxx是项目的ID,这是发件人ID。

并确保API密钥属于“主要用于服务器应用程序(与IP锁定)”



Answer 2:

不匹配发生在你不使用数字ID。 项目ID没有发件人ID! 我花了9小时至摸不着头脑。 对于由谷歌创建的所有困惑,请查看以下链接以获取数字标识。

https://console.cloud.google.com

代替

https://console.developers.google.com

希望能帮助到你!!

更新: - 事情又发生了变化。 现在,发件人ID与火力点。

转到https://console.firebase.google.com并选择您的项目。 在设置 - >云讯息,你可以找到发件人ID。

和它的作品!



Answer 3:

请您在下面端运行的脚本

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

它会给消息,如果它是成功还是失败



Answer 4:

最近,我遇到了同样的问题,我根据项目ID尝试了不同的值“gcm_sender_id”。 然而,“gcm_sender_id”值必须设置为“项目编号”。

你可以找到在这个值:菜单> IAM与管理员>设置。

见截图: GCM项目编号



Answer 5:

InstanceID.getInstance(getApplicationContext()).getToken(authorizedEntity,scope)

authorizedEntity是服务器的项目编号



Answer 6:

您的Android应用程序需要正确的12位数字的ID(又名GCM项目编号)。 如果这12位数字不正确,那么你也将获得此错误。

这12位数字中找到你的谷歌游戏控制台的特定应用下,“服务和API” - >“联者编号”



Answer 7:

这种情况发生在服务器密钥和S 安德ID参数HTTP请求不相互匹配。 基本上,这两个服务器ID和服务器密钥必须属于同一个火力点项目。 请参考下面的图片。 在混合来自输精管火力地堡项目这些参数会导致错误的情况下MismatchSenderId



Answer 8:

使用发件人ID&这里生成API密钥: http://developers.google.com代替(浏览谷歌云端通讯第一,并按照指令)。



Answer 9:

如果使用了原生的Android,请检查您AndroidMaifest.xml文件:

<meta-data
        android:name="onesignal_google_project_number"
        android:value="str:1234567890" />  
  <!--             its is correct. -->

代替

   <meta-data
        android:name="onesignal_google_project_number"
        android:value="@string/google_project_number" />

希望能帮助到你!!



文章来源: Why do I get “MismatchSenderId” from GCM server side?