小编Cow*_*ord的帖子

如何在没有 gcloud 的情况下用 Java 为 Google AutoML Vision API 生成访问令牌?

我正在制作一个将利用 Google AutoML Vision API 的 Android 应用程序。我正在寻找一种方法来获取永久访问令牌或在代码中生成它们,这样我就不需要每次想使用我的应用程序时都使用 gcloud。我该怎么做呢?

我已经创建了 AutoML 模型,设置了我的服务帐户,并在 Android Studio 中编写了我的应用程序,以便它使用 Volley 向 API 发出请求。问题是,它们要求您使用 gcloud 生成并传递访问令牌。我可以生成令牌并将其放入我的代码中,但它只能持续一个小时然后过期。REST API 需要访问令牌,如下所示。

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access- 
token)" 
Run Code Online (Sandbox Code Playgroud)

我已经研究了解决这个问题的不同方法。例如,有一些适用于 Java 和 Google Cloud 应用程序的 Google 客户端库展示了如何将服务帐户凭据添加到代码中。我很困惑从手机运行时如何将 Json 密钥文件添加到代码中。我还读到可以使用 Firebase,但我不熟悉该过程是什么。

目前,我将在我的计算机上打开 gcloud,生成访问令牌,将其粘贴到我的代码中,并按如下方式使用标题运行应用程序,这将返回所需的结果长达一个小时,直到访问代码过期。

@Override
public Map<String, String> getHeaders() throws AuthFailureError{
    Map<String, String> headers = new HashMap<>();
    headers.put("Authorization", "Bearer " + accesstoken);
    return headers;
 }
Run Code Online (Sandbox Code Playgroud)

我希望这是一个可以在 Android 手机上运行的独立应用程序。这样做的最佳方法是什么?


更新:我能够将文件添加到 Android Studio,然后使用一些函数来获取访问令牌,它似乎在模拟器中工作。我不确定这种方法有多安全,因为带有密钥的 json 文件需要保密。 …

java android google-cloud-platform gcloud automl

5
推荐指数
1
解决办法
583
查看次数

标签 统计

android ×1

automl ×1

gcloud ×1

google-cloud-platform ×1

java ×1