API を使用してページを管理する

通常は、コンソールを使用してページを管理します。 高度なシナリオでは、API を使用してページを管理することも考えられます。このガイドでは、API を使用してページを作成、一覧表示、削除する方法について説明します。

ページを作成

エージェントのページを作成するには、Page 型の create メソッドを呼び出します。

ページ リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST ページリソース ページリソース
RPC ページ インターフェース ページ インターフェース
C++ PagesClient 利用できません
C# PagesClient 利用できません
Go PagesClient 利用できません
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 利用不可 利用できません
Python PagesClient PagesClient
Ruby 利用不可 利用できません

Java

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dialogflow.cx.v3.CreatePageRequest;
import com.google.cloud.dialogflow.cx.v3.Page;
import com.google.cloud.dialogflow.cx.v3.PagesClient;
import java.io.IOException;

public class CreateSimplePage {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project-id";
    String agentId = "my-agent-id";
    String flowId = "my-flow-id";
    String location = "my-location";
    String displayName = "my-display-name";

    createPage(projectId, agentId, flowId, location, displayName);
  }

  // DialogFlow API Create Page Sample.
  // Creates a page from the provided parameters
  public static Page createPage(
      String projectId, String agentId, String flowId, String location, String displayName)
      throws IOException {
    Page response;
    CreatePageRequest.Builder createRequestBuilder = CreatePageRequest.newBuilder();
    Page.Builder pageBuilder = Page.newBuilder();

    pageBuilder.setDisplayName(displayName);

    createRequestBuilder
        .setParent(
            "projects/"
                + projectId
                + "/locations/"
                + location
                + "/agents/"
                + agentId
                + "/flows/"
                + flowId)
        .setPage(pageBuilder);

    // Make API request to create page
    // Note: close() needs to be called on the PagesClient object to clean up resources
    // such as threads. In the example below, try-with-resources is used,
    // which automatically calls close().
    try (PagesClient client = PagesClient.create()) {
      response = client.createPage(createRequestBuilder.build());
      System.out.println("Successfully created page!");
      return response;
    }
  }

Node.js

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

async function createPage(projectId, agentId, flowId, location, displayName) {
  const pagesClient = new PagesClient();

  const createPageRequest = {
    parent: `projects/${projectId}/locations/${location}/agents/${agentId}/flows/${flowId}`,
    page: {
      displayName: displayName,
    },
  };

  const response = await pagesClient.createPage(createPageRequest);
  console.log(response);
}

Python

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

async def create_page(project_id, agent_id, flow_id, location, displayName):
    pages_client = PagesAsyncClient()

    page = Page()
    page.display_name = displayName

    request = CreatePageRequest()
    request.parent = (
        "projects/"
        + project_id
        + "/locations/"
        + location
        + "/agents/"
        + agent_id
        + "/flows/"
        + flow_id
    )
    request.page = page

    response = await pages_client.create_page(request=request)
    return response

ページの一覧表示

エージェントのページを一覧表示するには、Page 型の list メソッドを呼び出します。

ページ リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST ページリソース ページリソース
RPC ページ インターフェース ページ インターフェース
C++ PagesClient 利用できません
C# PagesClient 利用できません
Go PagesClient 利用できません
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 利用不可 利用できません
Python PagesClient PagesClient
Ruby 利用不可 利用できません

Java

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dialogflow.cx.v3.ListPagesRequest;
import com.google.cloud.dialogflow.cx.v3.ListPagesRequest.Builder;
import com.google.cloud.dialogflow.cx.v3.Page;
import com.google.cloud.dialogflow.cx.v3.PagesClient;
import java.io.IOException;

public class ListPages {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project-id";
    String agentId = "my-agent-id";
    String flowId = "my-flow-id";
    String location = "my-location";

    listPages(projectId, agentId, flowId, location);
  }

  // DialogFlow API List Pages Sample.
  // Lists all pages from the provided parameters
  public static void listPages(String projectId, String agentId, String flowId, String location)
      throws IOException {
    // Note: close() needs to be called on the PagesClient object to clean up resources
    // such as threads. In the example below, try-with-resources is used,
    // which automatically calls close().
    try (PagesClient client = PagesClient.create()) {
      Builder listRequestBuilder = ListPagesRequest.newBuilder();

      String parentPath =
          String.format(
              "projects/%s/locations/%s/agents/%s/flows/%s", projectId, location, agentId, flowId);
      listRequestBuilder.setParent(parentPath);
      listRequestBuilder.setLanguageCode("en");

      // Make API request to list all pages in the project
      for (Page element : client.listPages(listRequestBuilder.build()).iterateAll()) {
        System.out.println(element);
      }
    }
  }

Node.js

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

async function listPages(projectId, agentId, flowId, location) {
  const pagesClient = new PagesClient();
  const listPageRequest = {
    parent: `projects/${projectId}/locations/${location}/agents/${agentId}/flows/${flowId}`,
    languageCode: 'en',
  };

  const response = await pagesClient.listPages(listPageRequest);
  console.log(response);
}

Python

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

async def list_page(project_id, agent_id, flow_id, location):
    pages_client = PagesAsyncClient()

    request = ListPagesRequest()
    request.parent = (
        f"projects/{project_id}/locations/{location}/agents/{agent_id}/flows/{flow_id}"
    )

    request.language_code = "en"

    response = await pages_client.list_pages(request=request)
    return response

ページの削除

エージェントのページを削除するには、Page 型の delete メソッドを呼び出します。

ページ リファレンスのプロトコルとバージョンを選択:

プロトコル V3 V3beta1
REST ページリソース ページリソース
RPC ページ インターフェース ページ インターフェース
C++ PagesClient 利用できません
C# PagesClient 利用できません
Go PagesClient 利用できません
Java PagesClient PagesClient
Node.js PagesClient PagesClient
PHP 利用不可 利用できません
Python PagesClient PagesClient
Ruby 利用不可 利用できません

Java

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

import com.google.cloud.dialogflow.cx.v3.DeletePageRequest;
import com.google.cloud.dialogflow.cx.v3.DeletePageRequest.Builder;
import com.google.cloud.dialogflow.cx.v3.PagesClient;
import java.io.IOException;

public class DeletePage {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "my-project-id";
    String agentId = "my-agent-id";
    String flowId = "my-flow-id";
    String pageId = "my-page-id";
    String location = "my-location";

    deletePage(projectId, agentId, flowId, pageId, location);
  }

  // DialogFlow API Delete Page Sample.
  // Deletes a page from the provided parameters
  public static void deletePage(
      String projectId, String agentId, String flowId, String pageId, String location)
      throws IOException {

    // Note: close() needs to be called on the PagesClient object to clean up resources
    // such as threads. In the example below, try-with-resources is used,
    // which automatically calls close().
    try (PagesClient client = PagesClient.create()) {
      Builder deleteRequestBuilder = DeletePageRequest.newBuilder();

      deleteRequestBuilder.setName(
          "projects/"
              + projectId
              + "/locations/"
              + location
              + "/agents/"
              + agentId
              + "/flows/"
              + flowId
              + "/pages/"
              + pageId);

      // Make API request to delete page
      client.deletePage(deleteRequestBuilder.build());
      System.out.println("Successfully deleted page!");
    }
  }

Node.js

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

async function deletePage(projectId, agentId, flowId, pageId, location) {
  const pagesClient = new PagesClient();

  const req = {
    name: `projects/${projectId}/locations/${location}/agents/${agentId}/flows/${flowId}/pages/${pageId}`,
  };

  const response = await pagesClient.deletePage(req);
  console.log(response);
}

Python

Dialogflow への認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証の設定をご覧ください。

async def delete_page(project_id, agent_id, flow_id, page_id, location):
    pages_client = PagesAsyncClient()

    request = DeletePageRequest()
    request.name = f"projects/{project_id}/locations/{location}/agents/{agent_id}/flows/{flow_id}/pages/{page_id}"

    response = await pages_client.delete_page(request=request)
    return response