Android 谷歌http-post请求的“授权”部分是什么;什么是Firebase下游消息?

Android 谷歌http-post请求的“授权”部分是什么;什么是Firebase下游消息?,android,push-notification,firebase,google-cloud-messaging,firebase-cloud-messaging,Android,Push Notification,Firebase,Google Cloud Messaging,Firebase Cloud Messaging,我想尝试使用google的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_HHwgIp

我想尝试使用google的
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..."
}
我的问题是我不知道
授权
的值应该是什么,当我删除这个头并发出请求时,我得到了错误
401:Unauthorized
。我想这一定是某种api密钥或什么东西,但我在我的项目中找不到它。有人能帮我吗

PS:出于测试目的,我目前使用的是根据文档向我的设备发送消息:

认证

要发送消息,应用服务器会发出POST请求。例如:

https://fcm.googleapis.com/fcm/send

消息请求由两部分组成:HTTP头和HTTP头 身体

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

  • 授权:密钥=您的\u服务器\u密钥
确保这是服务器键,其值在Firebase项目控制台的项目设置下可用。FCM拒绝客户端密钥或任何其他密钥

  • 内容类型:json的
    application/json
    <代码>应用程序/x-www-form-urlencoded;字符集=UTF-8用于纯文本

     If Content-Type is omitted, the format is assumed to be plain text.
    

更新(2016/11/16)

也许你应该考虑使用FCM令牌代替服务器键作为下面截图

中的注释


更新(2016/12/08)

Firebase已将服务器密钥升级到新版本,并建议您升级到最新版本。请参见下面的屏幕截图:

根据文件:

认证

要发送消息,应用服务器会发出POST请求。例如:

https://fcm.googleapis.com/fcm/send

消息请求由两部分组成:HTTP头和HTTP头 身体

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

  • 授权:密钥=您的\u服务器\u密钥
确保这是服务器键,其值在Firebase项目控制台的项目设置下可用。FCM拒绝客户端密钥或任何其他密钥

  • 内容类型:json的
    application/json
    <代码>应用程序/x-www-form-urlencoded;字符集=UTF-8用于纯文本

     If Content-Type is omitted, the format is assumed to be plain text.
    

更新(2016/11/16)

也许你应该考虑使用FCM令牌代替服务器键作为下面截图

中的注释


更新(2016/12/08)

Firebase已将服务器密钥升级到新版本,并建议您升级到最新版本。请参见下面的屏幕截图:


我也遇到了这个错误。问题在于服务器密钥。不要使用google-services.json文件中的api密钥


您应该使用firebase控制台项目中的服务器api密钥,在“云消息传递”选项卡上的“项目密钥:

我也遇到了此错误。问题在于服务器密钥。不要使用google-services.json文件中的api密钥


您应该使用firebase console项目中的服务器api密钥,位于“云消息”选项卡“项目密钥:

这是您的服务器密钥,您可以在“项目设置”>“云消息”下的console.developers.google.com或firebase project console中查看该密钥。请注意,它是由谷歌服务自动创建的。您应该在控制台中添加IP地址以限制使用


另外,请记住内容类型:application/json,否则您将得到Error=MissingRegistration。

这是您的服务器密钥,您可以在项目设置>云消息下的console.developers.google.com或Firebase project console中查看。请注意,它是由谷歌服务自动创建的。您应该在控制台中添加IP地址以限制使用


另外,请记住内容类型:application/json,否则您将得到Error=MissingRegistration。

非常感谢。我认为文档组织得不好,但再次感谢您的回答hey@BNK您介意发布示例curl或httpie代码吗?我似乎无法获得工作授权。谢谢@FredLoh在我的回答中的谷歌链接,在“检查服务器密钥的有效性”中,你会发现curl示例我收到HTTP/1.1400错误请求我的帖子是fcm.googleapis.com/fcm/send Content Type:application/json Authorization:key=GduFdg……wk8b4uwkxxx。。。{“数据”:{“消息”:“发布消息”,“版本”:“2.0:}”,至”:“fasdsadasdasj9n40:APA91b….5nX--HG…..7wyTCN”}怎么了?@SagarPatil你得到了400,而不是401,所以仅供参考,非常感谢你。我认为文档组织得不好,但再次感谢你的回答。嘿@BNK你介意发布示例curl或httpie代码吗?我似乎无法获得工作授权。谢谢!@FredLoh在我的回答中的谷歌链接,在“检查服务器密钥的有效性”,您将发现curl示例我收到HTTP/1.1 400错误请求我的帖子是fcm.googleapis.com/fcm/send内容类型:application/json Authorization:key=GduFdg……wk8b4uwkxxx……{“数据”:{“消息”:“post message”,“版本”:“2.0:}”,to::“fasdsadasdsadasj9N40:APA91b….5nX--HG….7wyTCN”}怎么了?@SagarPatil你有400,不是401,仅供参考