Actions API

Actions API 提供了可帮助您构建、管理和测试 Action 的端点。

客户端库 (Node.js)

虽然您可以通过向服务器直接发出 HTTP 请求来使用 Actions API RESTful 服务,但我们提供了一个客户端库,可以更轻松地从 Node.js 访问端点。借助 Actions API 客户端库,您可以使用各种端点管理和测试您的 Action。

例如,以下代码会调用 writePreview 端点,以根据提供的模型更新用户的项目预览:

   import {ActionsSdkClient} from '@assistant/actions';
   import { promisify } from 'util';
   import * as stream from 'stream';

   const PROJECT_ID = '<PROJECT_ID>';
   const VERSION = 123;

   const projectPath = `projects/${PROJECT_ID}`;
   const versionPath = `projects/${PROJECT_ID}/versions/${VERSION}`;

    async function publishPreview(projectPath, versionPath) {
      const request = {
        parent: projectPath,
        previewSettings: {sandbox: {value: true}},
        submittedVersion: {version: versionPath}
      };

      const client = new ActionsSdkClient();
      const stream = client.writePreview(()=>{});
      stream.write(request);
      stream.end();
      const finished = promisify(stream.finished);
      await finished(stream);
    }

如需查看 Actions API Node.js 客户端库的安装说明和参考资料,请参阅Actions API REST 参考文档

要求

以下要求适用于向 Actions API 发出的请求。

请求载荷大小

向 Actions API 发出的请求不得超过 10 MB。这包括客户端流式传输端点,其中流中的每个请求的大小不得超过 10 MB。

如果您的载荷超过 10 MB,您应该会收到来自 Actions SDK 服务器的 400 错误。

最佳实践

使用 Actions API 时,强烈建议您遵循以下最佳实践。

设置 x-goog-user-project 请求标头

为用户构建应用或应用时,您可能希望为用户的项目(而不是您的客户端项目)计费并用于配额限制。如需为结算和配额指定项目,请设置 x-goog-user-project 请求标头。

有效值 现有 Google Cloud 项目的项目 ID
示例 x-goog-user-project: my-project
具体说明 标头中指定的项目用于实现配额限制,并支付与请求相关的费用。

设置用户代理请求标头

使用 user-agent 请求标头设置适当的用户代理。这有助于 API 确定请求是否来自合作伙伴。

已知限制

本部分介绍 Actions API 的已知限制。

客户端流式传输端点超时

此限制仅适用于向客户端流式传输端点发出的 HTTP 请求。使用客户端库发出的请求不受此限制的影响。

如果您使用 HTTP 请求来调用 WritePreviewCreateVersionWriteDraft,我们建议您实现超时来处理不成功的请求。

如果您收到的响应标头指定 200 以外的状态代码,您的代码应在一段时间后终止数据流。此问题只会影响客户端流式传输端点。例如,使用 Actions API 的 gactions 工具的超时时间为 5 秒。