所以我有一个需要 Firebase服务帐户密钥的应用。如文档中所述,它是短命密钥。那么我是否需要在每次到期时手动继续下载服务帐户密钥JSON文件?
1。这是我用来从JSON文件提取令牌的代码。
public interface PersonRepository extends PagingAndSortingRepository<Person, String> {
List<Person> findByLastname(String lastname);
Page<Person> findByFirstname(String firstname, Pageable pageable);
Person findByShippingAddresses(Address address);
2。链接为:https://fcm.googleapis.com/v1/projects/ {valid_project_id} / messages:send
3。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
4。Content-Type : application/json; UTF-8
5.Body
Authorization : Bearer *access_token_returned_in_step_1*
6。 在一段时间内效果很好。然后,
{
"message":{
"name":"name_field",
"android":{
"ttl":"81000s",
"data":{
"Name":"Z",
"Surname":"Z"
},
"notification":{
"title":"Hello",
"body":"World"
}
},
"topic":"test_topic"
}
}
7。当我再次下载服务帐户密钥JSON文件并再次运行相同的过程时,它有效。
那么,有没有办法手动下载服务帐户密钥JSON文件?
答案 0 :(得分:1)
我正在重用从service_account.json文件提取的访问令牌,并将其粘贴到Postman中以进行测试。这就是问题所在。每当需要通过FCM发送消息时,都需要生成令牌。因此,第1步,即 _get_access_token()每次都需要在发送FCM通知/数据消息之前执行。 第1步必须与FCM通信才能检索最新的有效令牌。