Android GCM错误身份验证发件人帐户

时间:2016-06-23 09:20:13

标签: android google-cloud-messaging

自从我创建了集成了GCM的Android应用以来,已经有一段时间了。以前在API控制台中,您可以将服务器IP指定为白名单。但是在我的最新项目中,这个选项并不存在。相反,它从我配置的签名密钥中请求SHA1。

但是,当我尝试向已注册的设备ID发送通知时,我

“验证发件人帐户时出错”

我正在使用正确的API密钥,所以我看不出有什么问题。

2 个答案:

答案 0 :(得分:1)

以前在API控制台中,您可以将服务器IP指定为白名单。但是在我的最新项目中,此选项不存在

在GDC中生成SERVER API密钥时会找到此部分。

“验证发件人帐户时出错”

GCM Authentication指南中找到了这个。确保这些已实施。

  

消息请求由两部分组成:HTTP标头和HTTP正文。

     

HTTP标头必须包含以下标头:

     

授权:key = YOUR_API_KEY Content-Type:application / json for   JSON; application / x-www-form-urlencoded; charset = UTF-8用于纯文本。   如果省略Content-Type,则假定格式为纯文本。

例如:

Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{
  "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
  "data" : {
    ...
  },
}

附加说明:

Authentication Error 401 - 无法验证用于发送邮件的发件人帐户。

  

可能的原因是:

     

- 在HTTP请求中缺少授权标头或语法无效。

     

- 作为密钥发送的项目编号无效。

     

-Key有效但GCM服务已禁用。

     

- 请求源自服务器密钥IP中未列入白名单的服务器。检查您在身份验证中发送的令牌   header是与项目关联的正确API密钥。看到   Checking the validity of an API Key   详情。

答案 1 :(得分:0)

Google Cloud Messaging现在默认使用Firebase云消息传递(FCM)。使用Firebase Console中提供的服务器密钥。

在此之前,您可能还需要将Google云端项目导入Firebase(如果有的话)。

Import instructions(仅遵循“迁移您的控制台项目”部分)