API Tindakan

Actions API menyediakan endpoint untuk membantu membuat, mengelola, dan menguji Action Anda.

Library Klien (Node.js)

Meskipun Anda dapat menggunakan layanan Actions API RESTful dengan membuat permintaan HTTP langsung ke server, kami menyediakan library klien yang mempermudah akses ke endpoint dari Node.js. Library klien Actions API memungkinkan Anda mengelola dan menguji Action menggunakan berbagai endpoint.

Misalnya, kode di bawah melakukan panggilan ke endpoint writePreview untuk mengupdate pratinjau project pengguna berdasarkan model yang disediakan:

   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);
    }

Untuk petunjuk penginstalan dan materi referensi library klien Node.js Actions API, lihat dokumentasi library dan referensi REST API Actions.

Persyaratan

Persyaratan berikut berlaku untuk permintaan yang dibuat ke Actions API.

Ukuran payload permintaan

Permintaan yang dibuat ke Actions API harus berukuran maksimal 10 MB. Hal ini mencakup endpoint streaming klien, dengan setiap permintaan dalam streaming harus berukuran 10 MB atau kurang.

Jika payload melebihi 10 MB, Anda akan menerima error 400 dari server Action SDK.

Praktik terbaik

Praktik terbaik berikut sangat direkomendasikan saat Anda menggunakan Actions API.

Menetapkan header permintaan x-goog-user-project

Saat membuat alat atau aplikasi untuk pengguna, Anda mungkin ingin project pengguna ditagih dan digunakan untuk batas kuota, bukan project klien Anda. Guna menentukan project untuk tujuan penagihan dan kuota, tetapkan header permintaan x-goog-user-project.

Nilai Valid Project ID untuk project Google Cloud yang sudah ada
Contoh x-goog-user-project: my-project
Detail Project yang ditentukan dalam header digunakan untuk batas kuota dan ditagih untuk biaya yang terkait dengan permintaan tersebut.

Menyetel header permintaan agen pengguna

Tetapkan agen pengguna yang sesuai menggunakan header permintaan user-agent. Hal ini membantu API menentukan apakah permintaan berasal dari partner atau tidak.

Batasan umum

Bagian ini menjelaskan batasan umum Actions API.

Waktu tunggu untuk endpoint streaming klien

Batasan ini hanya berlaku untuk permintaan HTTP yang Anda buat ke endpoint streaming klien. Permintaan yang dibuat menggunakan library klien tidak terpengaruh oleh batasan ini.

Jika Anda menggunakan permintaan HTTP untuk memanggil WritePreview, CreateVersion, atau WriteDraft, sebaiknya implementasikan waktu tunggu untuk menangani permintaan yang tidak berhasil.

Jika menerima header respons yang menentukan kode status selain 200, kode Anda harus menghentikan streaming setelah jangka waktu tertentu. Masalah ini hanya memengaruhi endpoint streaming klien. Misalnya, alat gactions, yang menggunakan Actions API, memiliki waktu tunggu 5 detik.