自从我创建了集成了GCM的Android应用以来,已经有一段时间了。以前在API控制台中,您可以将服务器IP指定为白名单。但是在我的最新项目中,这个选项并不存在。相反,它从我配置的签名密钥中请求SHA1。
但是,当我尝试向已注册的设备ID发送通知时,我
“验证发件人帐户时出错”
我正在使用正确的API密钥,所以我看不出有什么问题。
答案 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(仅遵循“迁移您的控制台项目”部分)