【问题标题】:Authenticating google cloud api on android在android上验证谷歌云api
【发布时间】:2019-08-07 16:48:35
【问题描述】:

我在我的 Android 应用中使用 Google Cloud Speech-to-text API。

如果无法设置必要的环境变量,如何通过 API 进行身份验证?

我找不到任何关于在 android 上进行身份验证、使用环境变量和文件的文档

【问题讨论】:

    标签: java android google-cloud-platform environment-variables


    【解决方案1】:

    您的问题不清楚,但我认为您正在尝试使用服务帐户(“文件”)和GOOGLE_APPLICATION_CREDENTIALS(“环境变量”)来验证您的应用。

    你不应该。

    服务帐户最适用于需要通过 Google API 进行身份验证的自主运行(即非人类用户直接运行)的软件(例如其他服务)。

    对于 Android 应用程序,我认为您可能希望使用完整的 OAuth 流程针对 Google API 对应用程序的人类用户进行身份验证,前提是您的用户被提示批准使用 Google API,然后您的应用程序被验证为这个用户。

    有关 3 种主要身份验证方法的说明,请参见此处: https://cloud.google.com/docs/authentication/

    请参阅此处,了解如何通过 Google API 对人类用户进行身份验证: https://cloud.google.com/docs/authentication/end-user

    请看这里——因为我没有使用它,所以对此不太有信心——作为使用 Google 登录(即 OAuth)对 Android 应用进行身份验证的一种方式: https://developers.google.com/identity/sign-in/android/sign-in

    HTH

    【讨论】:

    • 我确实在查看一些服务帐户文档,但我现在使用的是简单的 API 密钥 - 就足够了,不需要 oauth。仍然......在java中没有关于如何在API中使用密钥的文档。您可以通过简单的 get 参数在 HTTP 请求中使用密钥。 .../?key=API_KEY
    • 见这里:cloud.google.com/docs/authentication/api-keys。 OAuth 可能是更好的选择。它的工作量更大,但更安全,也更合适,因为它需要您的用户授予您的应用程序对其数据的权限(由 API 使用)。 API 密钥需要更仔细的管理。虽然您可以限制 API 密钥的使用,但拥有您其中一个密钥的任何人都可以使用向您收费的 API。
    • 我的问题是在 android 应用程序的上下文中应用密钥。我会阅读您发布的文档
    • 我假设您使用的是 Java?文档说云客户端库不支持 Android (cloud.google.com/speech-to-text/docs/…)。我对 Android 开发不够熟悉,无法提供很大帮助。但是,如果这是真的,您需要使用 API 客户端库 (developers.google.com/resources/api-libraries/documentation/…),但此库不支持使用 API 密钥进行身份验证 (developers.google.com/api-client-library/java/…)
    猜你喜欢
    • 2021-10-02
    • 2019-11-02
    • 2023-03-05
    • 2020-08-25
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-18
    相关资源
    最近更新 更多