1

向 GCM 服务器发送消息(使用 Java)时出现异常:

[ errorCode=MismatchSenderId ]

在这里,我检查了我的 apikey 和 senderid。两者都在同一个项目中。请帮助解决此问题。

我正在使用 Windows 系统和 Java 编程来向 GoogleCloudMessaging 发送消息。根据 GCM 的文档,我正在发送 regid(将由 andridd 设备发送)和 apikey 以及一些文本消息。这里 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();
    }
} 
4

2 回答 2

2

如果您的发件人 ID 和 API 密钥匹配(并且您使用的是正确的发件人 ID 值,即 Google API 项目 ID),则对您的问题最可能的解释是您使用的是为不同的发件人ID。

于 2013-03-29T16:15:54.873 回答
0

请在您的终端中运行以下脚本

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": "来自 Rajkumar 的手动推送通知" },
"priority": "high"
}' \
https://android.googleapis.com/gcm/send

MismatchSenderId 因为在同一设备上您使用不同的密钥登录。要解决此问题,请卸载应用程序并再次运行它并更新注册密钥。然后在您的终端中运行我在上面发布的 CURL 脚本,它将提供成功消息,您将收到通知到您的设备

于 2016-02-22T14:10:22.630 回答