获取生产 Android 应用的 Google 语音 API 访问令牌

Getting a Google Speech API access token for a production Android app

我在 Android 应用程序中使用 Google 语音 API。自述文件指出: In this sample, we load the credential from a JSON file stored in a raw resource folder of this client app. You should never do this in your app. Instead, store the file in your server and obtain an access token from there.

是否有关于如何正确获取生产应用程序访问令牌的示例?

从我收集到的信息来看,我似乎可以使用通过 Compute Engine 或 GAE 提供的 Application Default Credentials,但我不知道如何实际响应我的应用程序的访问令牌。

对于 Android,您可能想要使用 Android sample for Google Cloud Speech,因为云客户端库目前不关注 Android 支持。

我是示例的作者。

这是应该在服务器端的部分。基本上,您必须将 JSON 文件安全地存储在服务器端,并在您从移动应用程序收到请求时获取新的访问令牌。移动应用程序应始终与您的服务器通信以获取访问令牌。这样,您就不需要将服务帐户密钥放入 APK 中。

        // In response to a request from a mobile client

        // Open the JSON file stored on the server side.
        final InputStream stream = ...;
        try {
            // Initialize the credentials
            final GoogleCredentials credentials =
                GoogleCredentials.fromStream(stream)
                    .createScoped(SCOPE);
            // Fetch a new access token.
            final AccessToken token = credentials.refreshAccessToken();

            // Return the token to the mobile app.

        } catch (IOException e) {

            // Maybe report this as an HTTP error.

        }

如果您不在服务器端使用 Java,您可以在 Google Cloud Client Libraries.

找到您使用的语言的客户端库

请参阅 Google Cloud Platform Auth Guide 了解有关如何从后端向 API 发送请求的基础知识。