Actions API は、アクションの作成、管理、テストに役立つエンドポイントを提供します。
クライアント ライブラリ(Node.js)
Actions API RESTful サービスは、サーバーに直接 HTTP リクエストを送信することでも使用できますが、Node.js からエンドポイントに簡単にアクセスできるようにするクライアント ライブラリも提供しています。Actions API クライアント ライブラリを使用すると、さまざまなエンドポイントを使用してアクションの管理とテストを行うことができます。
たとえば、以下のコードは 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 を超えると、アクションから 400
エラーが返されます。
使用します。
ベスト プラクティス
次のベスト プラクティスは、 Actions API を使用します。
x-goog-user-project リクエスト ヘッダーを設定する
ユーザー向けにツールやアプリケーションを作成する場合、
クライアント プロジェクトではなく、プロジェクトに課金して割り当て上限として使用します。
課金と割り当ての目的でプロジェクトを指定するには、
x-goog-user-project
リクエスト ヘッダー。
有効な値 | 既存のプロジェクトのプロジェクト ID Google Cloud プロジェクト |
例 | x-goog-user-project: my-project |
詳細 | ヘッダーで指定されたプロジェクトが割り当て上限として使用され、課金対象 請求が行われる可能性があります |
user-agent リクエスト ヘッダーを設定する
user-agent
リクエスト ヘッダーを使用して、適切なユーザー エージェントを設定します。この
リクエストがパートナーから発信されたかどうかを API が判断するのに役立ちます。
既知の制限事項
このセクションでは、Actions API の既知の制限事項について説明します。
クライアント ストリーミング エンドポイントのタイムアウト
この制限は、クライアント ストリーミングに対して行う HTTP リクエストにのみ適用されます。 提供しますクライアント ライブラリを使用して行われたリクエストは、 この制限の影響を受ける。
HTTP リクエストを使用して WritePreview
、CreateVersion
、または WriteDraft
を呼び出す場合、
リクエストされていないリクエストを処理できるように、タイムアウトを
成功です。
200
以外のステータス コードを指定するレスポンス ヘッダーを受け取った場合、
コードは一定の時間が経過したらストリームを終了する必要があります。この問題
クライアント ストリーミング エンドポイントにのみ影響します。たとえば、gactions
ツールは、
5 秒のタイムアウトがあります。