【问题标题】:Is it possible to generate an access token for a Google Cloud Platform API in a Cloud Function?是否可以在 Cloud Function 中为 Google Cloud Platform API 生成访问令牌?
【发布时间】:2020-05-19 01:21:47
【问题描述】:

我目前有一个使用 Google Speech-to-Text 库的 Android 应用程序。在开发过程中,我在 /res/raw/ 中有一个服务帐户 JSON 文件,我将其用作 API 的凭据。

我已将 Firebase 身份验证 UI 添加到应用程序,现在我想通过 Firebase 向 Speech-to-Text API 提供凭据。是否可以使用 Cloud Functions(根据 Firebase 服务帐户生成令牌),如果可以,我如何获取它?

我找不到任何与在 Cloud Function 中生成访问令牌相关的文档。

【问题讨论】:

  • 您希望您的 android 应用调用您的 Cloud Function 来获取身份验证令牌,然后您的 Android 可以重用它来查询语音到文本 API,不是吗?跨度>
  • @guillaumeblaquiere 是的,基本上。理想情况下,我希望在登录期间执行此操作。
  • @guillaumeblaquiere 对不起,我应该更清楚。我的问题已更新。
  • 你的语言是什么?如果你愿意,我可以给你寄一份样品。
  • @guillaumeblaquiere 如果可以的话那就太好了!我的应用程序是 Java,我在 Cloud Functions 中使用 Javascript。

标签: android google-cloud-functions google-speech-api


【解决方案1】:

Node 是我不太习惯的语言。这是一个基于Cloud Function identity生成访问令牌的最小示例

const express = require('express');
const app = express();

const {GoogleAuth} = require('google-auth-library');
const auth = new GoogleAuth()
app.get('/', async (req, res) => {
    res.send(await auth.getAccessToken());
});

const port = process.env.PORT || 8080;
app.listen(port, () => {});

你必须在你的依赖中添加google-auth-library

没有身份验证(您必须确保请求者已获得授权,我的意思是您的用户已登录您的 Android 应用程序,我假设使用 firebase 身份验证)并且访问令牌以纯文本(无 json 格式)返回。

我认为你可以适应这个。

【讨论】:

    猜你喜欢
    • 2020-06-29
    • 2020-10-24
    • 2018-12-24
    • 2021-10-02
    • 1970-01-01
    • 2018-11-21
    • 2021-04-08
    • 2020-03-03
    • 1970-01-01
    相关资源
    最近更新 更多