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 请求来调用 WritePreview
、CreateVersion
或 WriteDraft
,我们建议您实现超时来处理不成功的请求。
如果您收到的响应标头指定 200
以外的状态代码,您的代码应在一段时间后终止数据流。此问题只会影响客户端流式传输端点。例如,使用 Actions API 的 gactions
工具的超时时间为 5 秒。