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,您应该会收到来自 Action 的 400 错误 SDK 服务器。

最佳做法

在以下情况下,强烈建议您遵循 使用 Actions API。

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

在为用户开发工具或应用时,您可能希望用户的 用于结算和用于配额限制的项目,而不是您的客户端项目。 如需指定用于结算和配额的项目,请设置 x-goog-user-project 请求标头。

有效值 现有项目的项目 ID Google Cloud 项目
示例 x-goog-user-project: my-project
详细信息 标头中指定的项目会用于计算配额限制并结算费用 与请求相关的费用

设置用户代理请求标头

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

已知限制

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

客户端流式传输端点的超时

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

如果您使用 HTTP 请求来调用 WritePreview、CreateVersion 或 WriteDraft, 我们建议您实施超时,以处理 成功。

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