【问题标题】:when sending message(using Java) to GCM server getting exception [ errorCode=MismatchSenderId ]当向 GCM 服务器发送消息(使用 Java)时出现异常 [errorCode=MismatchSenderId]
【发布时间】:2012-12-16 03:41:49
【问题描述】:

向 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 到 5 个文件。但我可以描述问题。我使用 Windows 系统和使用 java 编程以向 GoogleCloudMessaging 发送消息。按照我正在发送 regid(将由 Android 设备发送)和 apikey 以及一些文本消息的 gcm 文档。此处 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();结果结果;尝试 { 结果 = sender.send(message,"APA91bFYa3SNWhUOywguYHN1XXXXXXX", 1); System.out.println(result.toString(); /* Message message1 = new Message.Builder() .build();*/ } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace() ; }}
  • 我已将您的 cmets 添加到问题中。这样代码更容易阅读。

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


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    请在终端中运行以下脚本

    卷曲 -X POST \
    -H "授权:key=在这里写api_key" \
    -H "内容类型:应用程序/json" \
    -d '{
    “registration_ids”:[ "在此处写入 gcm 生成的 reg_id"
    ], “数据”: { "message": "来自 Rajkumar 的手动推送通知" },
    “优先级”:“高”
    }' \
    https://android.googleapis.com/gcm/send

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

    【讨论】:

      猜你喜欢
      • 2018-05-12
      • 2013-02-03
      • 2021-05-23
      • 1970-01-01
      • 2012-08-04
      • 2017-12-06
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      相关资源
      最近更新 更多