我想为我的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?