Firebase Cloud Messaging Server帐户密钥已过期

时间:2018-08-12 07:17:58

标签: json python-3.x firebase-cloud-messaging service-accounts

所以我有一个需要 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文件?

1 个答案:

答案 0 :(得分:1)

我正在重用从service_account.json文件提取的访问令牌,并将其粘贴到Postman中以进行测试。这就是问题所在。每当需要通过FCM发送消息时,都需要生成令牌。因此,第1步,即 _get_access_token()每次都需要在发送FCM通知/数据消息之前执行。 第1步必须与FCM通信才能检索最新的有效令牌。