【问题标题】:Getting Firebase Bearer token by simple HttpCall (REST API)通过简单的 HttpCall (REST API) 获取 Firebase Bearer 令牌
【发布时间】:2021-06-30 15:31:54
【问题描述】:

我目前面临以下情况。

通过 HttpCall 通过 google API 端点发送 Firebase 消息:

https://fcm.googleapis.com/v1/projects/projectName/messages:send 在这里,我们必须使用带有有效承载令牌的 OAuth2.0,就像在这个问题中讨论的那样:

我应该使用什么 Bearer 令牌进行 Firebase 云消息传递测试?

执行这些步骤后,我能够通过 google API 发送 Firebase 消息。

现在我想通过 HttpCall 获取 Bearer 令牌,而无需使用 Playground https://developers.google.com/oauthplayground 执行手动步骤。

我找不到任何关于如何通过简单的 HttpCall 来“交换令牌的授权码”的文档。我无法实现任何代码,因为我想在“Dataverse Cloud Flow/PowerAutomate”中发送 Firebase 消息,因此无法加载任何外部 DLL(例如实现此功能的 Firebase Admin Dll)。

我不是,正在寻找依赖外部 Dll 的解决方案,例如 https://firebase.google.com/docs/database/rest/auth#authenticate_with_an_access_token 或 Pre-RequestScript

感谢任何帮助

【问题讨论】:

  • 您是否愿意使用接受某种形式的基本身份验证(电子邮件通行证、私钥)的HTTP Event Cloud Function 将请求代理到 Firebase 消息传递 API?这将允许您使用 cURL 使用私有 API 密钥向 https://us-central1-PROJECT-ID.cloudfunctions.net/ci/messaging/messages:send 等端点发出 HTTP 请求。

标签: firebase firebase-authentication firebase-cloud-messaging google-oauth


【解决方案1】:

您所追求的基本上是不可能的,因为您无法将不记名令牌的结果挂钩到相同的 URL 进程中以发送消息。听起来你无法获取一个 URL,处理来自该 URL 的结果以传递给另一个,这就是 REST API 会做的事情。

因此,您将需要一个辅助服务,您可以简单地向该服务发送消息,它会为您调用消息和身份验证,就像您将要建立的桥梁一样。您可以通过 onRequest 调用或 Google Compute Engine 实例(f1 免费层)上的简单快速服务器使用 Firebase Cloud Functions。

然后你可以将你的消息请求从你的服务发送到这个桥接器,它将为你进行身份验证并发送消息,这将是一个相当简单的脚本来实现,特别是使用 admin-sdk。

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 2014-02-25
    • 2018-01-19
    • 1970-01-01
    • 2015-03-05
    • 2019-07-04
    • 2022-11-17
    • 2017-06-12
    • 1970-01-01
    相关资源
    最近更新 更多