发送消息(使用Java)到GCM服务器获取异常时[errorCode = MismatchSenderId]

时间:2013-01-01 13:13:07

标签: java android push-notification google-cloud-messaging

当向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();
    }
} 

2 个答案:

答案 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脚本,我在上面发布它将给出成功消息,你将收到通知你的设备