如何获取FCM v1的Oauth访问令牌?没有服务器

问题描述 投票:0回答:1

我有一个旧项目,后端完全由Firebase处理(我没有专用服务器)。我曾经使用邮递员通过FCM将主题消息发送到标头为fcm.googleapis.com/fcm/send

的端点Authorization : key=<myKey>

现在,它给了我403错误,当我检查了Firebase documentation时,我知道使用FCM旧式HTTP API的应用程序应考虑迁移到HTTP v1 API。>

我浏览了文档,并说授权密钥现在看起来像

 Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

我被困在如何为我的项目创建此授权密钥的过程中,以便可以通过邮递员或curl请求使用它来触发消息

我在我的android项目中执行了以下代码

       private  void getAccessToken()  {
                String[] SCOPES = {"https://www.googleapis.com/auth/firebase.messaging"};
                GoogleCredential googleCredential = null;
                googleCredential = GoogleCredential
                        .fromStream(streamFromAsset("service-account.json"))
                        .createScoped(Arrays.asList(SCOPES));
                googleCredential.refreshToken();
                 return googleCredential.getAccessToken();
         }

并且此代码给了我类似于ya29.ElqKBGN2Ri_Uz...HnS_uNreA的访问令牌

现在我可以使用此令牌从邮递员发送消息。

但是我仍然很困惑,为获取令牌所做的一切都是正确的方法。文档说

将您的Firebase凭据与Google API客户端库一起用于您的首选语言,以检索短期OAuth 2.0访问令牌

令牌是短暂的令牌。如果我有服务器,则只要令牌过期,服务器代码就会自动获取新令牌。由于我没有服务器,因此每次都需要手动生成令牌吗?对于令牌如何有效的日志?在我的情况下,正确的做法是什么?

提前感谢!

我有一个旧项目,后端完全由Firebase处理(我没有专用服务器)。我曾经使用邮递员通过FCM将主题消息发送到端点fcm.googleapis.com / ...

android firebase oauth-2.0 firebase-cloud-messaging google-oauth2
1个回答
0
投票

...我是否需要每次手动生成令牌?

© www.soinside.com 2019 - 2024. All rights reserved.