我想尝试使用谷歌的FCM
消息服务发送消息,正如文档所述,http请求应该是这样的:
https://fcm.googleapis.com/fcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{ "data": {
"score": "5x1",
"time": "15:10"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
我的问题是,我不知道Authorization
的值应该是什么,当我删除此标头并发出请求时,我收到错误401:Unauthorized
。我认为这必须是某种api键或其他东西,但我在我的项目中找不到它。任何人都可以帮助我吗?
PS:出于测试目的,我目前正在使用this site向设备发送消息
答案 0 :(得分:27)
根据About Firebase Cloud Messaging Server文件:
验证
要发送消息,应用服务器会发出POST请求。例如:
https://fcm.googleapis.com/fcm/send
消息请求由两部分组成:HTTP标头和HTTP 体。
HTTP标头必须包含以下标头:
授权:key = YOUR_SERVER_KEY
确保这是服务器键,其值在项目设置>下的Firebase项目控制台中可用。 云消息传递。 FCM拒绝客户密钥或任何其他密钥。
内容类型:JSON的
application/json
;application/x-www-form-urlencoded;charset=UTF-8
用于纯文本。如果省略Content-Type,则假定格式为纯文本。
希望它有所帮助!
更新(2016/11/16)
也许您应该考虑使用FCM令牌而不是服务器密钥作为以下屏幕截图中的注释
更新(2016/12/08)
Firebase已将服务器密钥升级到新版本,并建议您升级到最新版本。请参阅下面的屏幕截图:
答案 1 :(得分:1)
我也遇到过这个错误。问题在于服务器密钥。请勿使用google-services.json文件中的api密钥。
您应该使用firebase控制台项目中的服务器api密钥,位于云消息传递选项卡项目密钥:https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging
答案 2 :(得分:0)
这是您的服务器密钥,您可以在项目设置>下观察到console.developers.google.com或Firebase项目控制台。云消息传递。请注意Google服务自动创建的密钥。你应该添加IP地址而不是G.Console来限制使用。
另外要记住Content-Type:application / json,否则你会得到Error = MissingRegistration。