Sey*_*emi 71 android push-notification google-cloud-messaging
我正在尝试为我的Android应用创建推送服务,并且我遵循Google GCM的文档和示例:
我可以注册/取消注册我的Android应用程序.从我的服务器端,我可以看到我注册了一个订阅,但当我尝试从服务器向我的Android应用程序发送消息时,我总是会收到以下错误:
向设备#0发送消息时出错:MismatchSenderId
对于我的Android应用,我使用SENDER_ID = 200000000001.
对于我的服务器端,谷歌说我使用API_KEY = AIzxxxxxxxxxxxxxxxxXxxXxxXxxxXXXXXxxxxs
我按照这个文件:
我也在我的Google API面板中启用了GCM,但我会收到恼人的错误消息.
我该如何解决这个问题?
azg*_*fer 66
您的服务器是否使用GCM服务器返回的新注册ID到您的应用程序?我有这个问题,如果尝试向旧C2DM服务器发出的注册ID发送消息.
并且还要仔细检查发件人ID和API_KEY,它们必须匹配,否则您将收到MismatchSenderId错误.在Google API控制台中,查看项目的网址:
https://code.google.com/apis/console/#project:xxxxxxxxxxx
Run Code Online (Sandbox Code Playgroud)
xxxxxxxxx是项目ID,即发件人ID.
并确保API密钥属于"服务器应用程序密钥(具有IP锁定)"
Aja*_*ngh 23
不使用数字ID时会发生不匹配.项目ID不是发送者ID !! 我花了9个小时来搞清楚这一点.对于谷歌创建的所有混淆,请检查以下链接以获取数字ID.
https://console.cloud.google.com
代替
https://console.developers.google.com
希望能帮助到你!!
更新: - 事情又变了.现在发件人ID是使用firebase.
转到https://console.firebase.google.com并选择您的项目.在设置 - >云消息传递下,您可以找到发件人ID.
它的工作原理!
请在终端下面的脚本中运行
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
Run Code Online (Sandbox Code Playgroud)
如果成功或失败,它将给出消息