当向GCM服务器发送消息(使用Java)时,我得到例外:
[ errorCode=MismatchSenderId ]
我在这里查看了我的apikey和senderid。两者都在同一个项目中。请帮助解决这个问题。
我正在使用Windows系统和使用java编程将消息发送到GoogleCloudMessaging。根据GCM的文档,我发送regid(由andridd设备发送)和apikey以及一些textmessage。这里regid和apikey使用相同的谷歌帐户。使用此详细信息,我将消息发送到GCM服务器。它说:mismatchsenderid ...请指导我..
public static void main(String[] args) {
Sender sender = new Sender("AIzaSyBXXXXXX");
Message message = new Message.Builder()
.collapseKey("1")
.timeToLive(3)
.delayWhileIdle(true)
.addData("message", "this").build();
Result result;
try {
result = sender.send(message,"APA91bFYa3SNWhUOywguYHN1XXXXXXX", 1);
System.out.println(result.toString();
/* Message message1 = new Message.Builder() .build();*/
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 0 :(得分:2)
如果您的发件人ID和API密钥匹配(并且您使用的是发件人ID的正确值,即Google API项目ID),您问题的最可能解释是您使用的旧版注册ID为不同的发件人ID生成。
答案 1 :(得分:0)
请在终端下面的脚本中运行
curl -X POST \
-H"授权:key =在这里写api_key" \
-H" Content-Type:application / json" \
-d' {
" registration_ids":[
"写在这里由gcm&#34生成的reg_id;
]
"数据":{
"消息":"来自Rajkumar的手动推送通知"
},
"优先":"高"
}' \
https://android.googleapis.com/gcm/send
MismatchSenderId,因为在同一设备中,您使用不同的密钥记录。解决此问题卸载应用程序并运行它againg并更新注册密钥。然后在你的teminal中运行CURL脚本,我在上面发布它将给出成功消息,你将收到通知你的设备