Google 的 Firebase 下游消息的 http post 请求的“授权”部分是什么?
What is the `Authorization` part of the http post request of Google's Firebase Downstream message?
我想尝试使用 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..."
}
我的问题是我不知道 Authorization
的值应该是什么,当我删除这个 header 并发出请求时,我得到错误 401:Unauthorized
。我想这一定是某种 api 键或其他东西,但我在我的项目中找不到它。谁能帮帮我?
PS:出于测试目的,我目前正在使用 this site 向我的设备发送消息
根据 About Firebase Cloud Messaging Server 文档:
Authentication
To send a message, the app server issues a POST request. For example:
https://fcm.googleapis.com/fcm/send
A message request consists of two parts: the HTTP header and the HTTP
body.
The HTTP header must contain the following headers:
- Authorization: key=YOUR_SERVER_KEY
确保这是 server 键,其值在您的 Firebase 项目控制台中的 Project Settings > 云消息。 FCM 拒绝客户端密钥或任何其他密钥。
Content-Type: application/json
for JSON; application/x-www-form-urlencoded;charset=UTF-8
for plain text.
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 密钥,在云消息选项卡项目密钥中:https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging
这是您的服务器密钥,您可以在 console.developers.google.com 或项目设置 > 云消息传递下的 Firebase 项目控制台中观察到它。请注意它由 Google 服务自动创建的密钥。您应该添加 IP 地址 inco G.Console 以限制使用。
另外请记住内容类型:application/json,否则您将得到 Error=MissingRegistration。
我想尝试使用 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..."
}
我的问题是我不知道 Authorization
的值应该是什么,当我删除这个 header 并发出请求时,我得到错误 401:Unauthorized
。我想这一定是某种 api 键或其他东西,但我在我的项目中找不到它。谁能帮帮我?
PS:出于测试目的,我目前正在使用 this site 向我的设备发送消息
根据 About Firebase Cloud Messaging Server 文档:
Authentication
To send a message, the app server issues a POST request. For example:
https://fcm.googleapis.com/fcm/send
A message request consists of two parts: the HTTP header and the HTTP body.
The HTTP header must contain the following headers:
- Authorization: key=YOUR_SERVER_KEY
确保这是 server 键,其值在您的 Firebase 项目控制台中的 Project Settings > 云消息。 FCM 拒绝客户端密钥或任何其他密钥。
Content-Type:
application/json
for JSON;application/x-www-form-urlencoded;charset=UTF-8
for plain text.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 密钥,在云消息选项卡项目密钥中:https://console.firebase.google.com/project/firebase-probiz/settings/cloudmessaging
这是您的服务器密钥,您可以在 console.developers.google.com 或项目设置 > 云消息传递下的 Firebase 项目控制台中观察到它。请注意它由 Google 服务自动创建的密钥。您应该添加 IP 地址 inco G.Console 以限制使用。
另外请记住内容类型:application/json,否则您将得到 Error=MissingRegistration。