如何将 Google 自然语言 API 与 Chatfuel 集成?

How to integrate a Google Natural Language API with Chatfuel?

我的编码技能和对 Google 云解决方案的熟悉程度有限,我正在尝试使用 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 请求中。

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

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

你应该做一个service account with Google Cloud

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

但最主要的是:使用您的服务 API 密钥,您每小时向某个 api URL(在 with instructions from another page from that link above 上可用)发出 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 APIs