0

我的编码技能和对 Google Cloud 解决方案的熟悉程度有限,我正在尝试使用 Chatfuel 平台构建的聊天机器人中的机器学习模型。

我已经使用 Google NL 训练了一个自然语言机器学习模型,我想使用我的模型页面中提供的这个代码片段:

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
  -H "Content-Type: application/json" \
  https://automl.googleapis.com/v1/projects/123456/locations/us-central1/models/ABC123:predict \
  -d @request.json

然后,我尝试像这样在 Chatbot 中传递这些信息:

在此处输入图像描述

问题是我似乎需要传递一个令牌(此 API 似乎无法使用 API 密钥),而且我看不到如何从 Chatfuel 界面获取每个请求的令牌并将其传递到我的 post 请求中。

编辑:我看过这篇文章并创建了一个服务帐户,但我看不到如何将凭据传递给 Chatfuel。

如何将 Google API 服务帐户凭据传递给 Chatfuel?

4

1 回答 1

1

您应该使用 Google Cloud 创建一个服务帐户

它应该为您提供一个带有 API 密钥的 JSON,该密钥用于每隔一小时左右生成一个新令牌。将 Google API 用于您正在使用的任何服务器端语言(或仅使用本机 http 请求),您使用服务密钥(通常作为 .json 文件加载到您的服务器中)每小时获取一个新令牌;或者,如果他们有可用的 Chatfuel(我不确定他们是否有),您可以使用 Google Apps 脚本并在那里获取令牌,然后每 30 分钟左右通过触发器将其发送到您自己的应用程序。

但主要的是:使用您的服务 API 密钥,您每隔一小时左右向某个 api URL 发出 HTTP 请求(可通过上述链接的另一个页面的说明获得)以生成新令牌。

从文档中,该 URL 似乎是:

POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/SA-4@PROJECT-ID.iam.gserviceaccount.com:generateAccessToken

只需替换,“`

SA-4@PROJECT-ID.iam.gserviceaccount.com

`"

使用您自己的服务帐户名称就是这样,它是如何适用于所有 Google Cloud API 的

于 2020-04-07T09:57:58.080 回答