在GCM中发送推送通知时未经授权的错误

时间:2016-01-11 16:02:30

标签: android google-cloud-messaging

您好我正在尝试通过GCM从服务器(应用程序服务器)向移动设备发送推送通知消息。我尝试下面的代码,但得到“连接被拒绝错误”,但当我使用网络服务测试测试我得到“未经授权的错误”根据附件。我正在使用服务器API密钥,没有IP地址被whishlisted.i已启用谷歌云消息的Android API也不知道原因。请帮忙。 web service tester error screenshot

代码:

        String google_server_key="";
        ResourceBundle rb = ResourceBundle.getBundle("GCMServerKey");
        Enumeration <String> keys = rb.getKeys();
        while (keys.hasMoreElements()) 
        {
            google_server_key = keys.nextElement();

        }

        try
        {

        String pushNotificationMessage="nagesh";
        String regID="APA91bEZD2MFH7TzMvry1UR2ezqTSAwCbqRgIZ8qXo_h559TYId29j3u2zPyHzxiZrA65tVhtPlY9O77LnLRbqJf585YmwYccBrGoQ5OjPAz4xT_JfIGJ1AEyjq9EUEhawc2V4kMrIar";              //pushMessage.getRegId();
        Sender sender = new Sender(google_server_key);
        Message message = new Message.Builder().timeToLive(30)
                .delayWhileIdle(true).addData(MESSAGE_KEY, pushNotificationMessage).build();

         Result result = sender.send(message,regID , 1);

        }
        catch (IOException ioe) 
        {
            ioe.printStackTrace();

        }
        catch (Exception e) 
        {
            e.printStackTrace();

        }   

1 个答案:

答案 0 :(得分:0)

这是Downstream message error response code文档。

  

身份验证错误401

     

无法验证用于发送邮件的发件人帐户。可能的原因是:

     
      
  • 缺少授权标头或HTTP请求中的语法无效。
  •   
  • 作为密钥发送的项目编号无效。
  •   
  • 密钥有效但GCM服务已停用。
  •   
  • 请求来自服务器密钥IP中未列入白名单的服务器。
  •   
     

检查您在Authentication标头内发送的令牌是否是与您的项目关联的正确API密钥。有关详细信息,请参阅Checking the validity of an API Key