Firebase 云消息传递服务器帐户密钥过期
Firebase Cloud Messaging Server Account key expires
所以我有一个应用程序需要 Firebase 服务帐户密钥。如文档中所述,它是一个 短暂 密钥。那么我是否需要在每次过期时手动继续下载服务帐户密钥 JSON 文件?
1.This 是我用来从 JSON 文件中提取令牌的代码。
SCOPES = ['https://www.googleapis.com/auth/firebase.messaging']
def _get_access_token():
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'{valid_path/file.json}', SCOPES)
access_token_info = credentials.get_access_token()
return access_token_info.access_token
2.The link 是:https://fcm.googleapis.com/v1/projects/{valid_project_id}/messages:send
3.Content-Type : application/json; UTF-8
4.Authorization : Bearer *access_token_returned_in_step_1*
5.Body
{
"message":{
"name":"name_field",
"android":{
"ttl":"81000s",
"data":{
"Name":"Z",
"Surname":"Z"
},
"notification":{
"title":"Hello",
"body":"World"
}
},
"topic":"test_topic"
}
}
6。 一段时间内效果很好。然后,
{
"error":{
"code":401,
"message":"Request had invalid authentication credentials.
Expected OAuth 2 access token, login cookie or other valid
authentication credential. See
https://developers.google.com/identity/sign-in/web/devconsole-
project.",
"status":"UNAUTHENTICATED"
}
}
7。当我再次 下载服务帐户密钥 JSON 文件时 和 运行 再次使用相同的程序, 它有效。
那么,有没有办法绕过手动下载服务帐户密钥 JSON 文件?
我 重新使用 从 service_account.json 文件中提取的访问令牌并将其粘贴到 Postman 中以进行测试。这就是问题所在。每次需要通过 FCM 发送消息时都需要生成令牌。所以,步骤 1 即。 _get_access_token()需要在每次发送FCM通知/数据消息前执行。 第 1 步 必须与 FCM 通信以检索最新的有效令牌。
所以我有一个应用程序需要 Firebase 服务帐户密钥。如文档中所述,它是一个 短暂 密钥。那么我是否需要在每次过期时手动继续下载服务帐户密钥 JSON 文件?
1.This 是我用来从 JSON 文件中提取令牌的代码。
SCOPES = ['https://www.googleapis.com/auth/firebase.messaging']
def _get_access_token():
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'{valid_path/file.json}', SCOPES)
access_token_info = credentials.get_access_token()
return access_token_info.access_token
2.The link 是:https://fcm.googleapis.com/v1/projects/{valid_project_id}/messages:send
3.Content-Type : application/json; UTF-8
4.Authorization : Bearer *access_token_returned_in_step_1*
5.Body
{
"message":{
"name":"name_field",
"android":{
"ttl":"81000s",
"data":{
"Name":"Z",
"Surname":"Z"
},
"notification":{
"title":"Hello",
"body":"World"
}
},
"topic":"test_topic"
}
}
6。 一段时间内效果很好。然后,
{
"error":{
"code":401,
"message":"Request had invalid authentication credentials.
Expected OAuth 2 access token, login cookie or other valid
authentication credential. See
https://developers.google.com/identity/sign-in/web/devconsole-
project.",
"status":"UNAUTHENTICATED"
}
}
7。当我再次 下载服务帐户密钥 JSON 文件时 和 运行 再次使用相同的程序, 它有效。
那么,有没有办法绕过手动下载服务帐户密钥 JSON 文件?
我 重新使用 从 service_account.json 文件中提取的访问令牌并将其粘贴到 Postman 中以进行测试。这就是问题所在。每次需要通过 FCM 发送消息时都需要生成令牌。所以,步骤 1 即。 _get_access_token()需要在每次发送FCM通知/数据消息前执行。 第 1 步 必须与 FCM 通信以检索最新的有效令牌。