我有一个旧项目,后端完全由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 / ...
...我是否需要每次手动生成令牌?