【问题标题】:How to get the default start page with Dialogflow CX API and edit its default route?如何使用 Dialogflow CX API 获取默认起始页面并编辑其默认路由?
【发布时间】:2021-08-29 15:40:10
【问题描述】:

我一直在尝试获取起始页面,但没有成功将其默认路由的转换路由更新到另一个页面(以编程方式进行),我在文档中看到起始页面的 id 是 START_PAGE here 但是问题是当我实际尝试获取页面时出现此错误:

com.google.apps.framework.request.NotFoundException: Page 'START_PAGE' does not exist in the flow.

我为 Dialogflow CX 提供的 node.js 使用了 client libraries

我也在使用相同资源中的默认启动流程。

我也尝试过使用 listPages 方法查看我的所有页面,但我的所有页面都出现了,但起始页

起始页是我应该在其他地方查看的特殊元素吗?

【问题讨论】:

    标签: javascript node.js typescript google-cloud-functions dialogflow-cx


    【解决方案1】:

    起始页中的Properties(routes/event handler) 实际上在流本身中。

    您可以使用GetFlow Node.js 方法获取起始页的路由。

    然后要编辑其默认的过渡路由,可以使用updateFlow Node.js 方法并更新transitionRoutes 字段以路由到另一个页面。

    以下是示例代码供您参考:

    const {FlowsClient} = require('@google-cloud/dialogflow-cx');
    
    const client = new FlowsClient();
    
    async function updateFlow() {
     const flowPath = client.flowPath(
       projectId,
       location,
       agentId,
       flowId
     );
     console.info(flowPath);
    
     const request = {
       flow: {
         name: flowPath,
         transitionRoutes: [{
           intent: "projects/<PROJECT_ID>/locations/<LOCATION_ID>/agents/<AGENT_ID>/intents/<INTENT_ID>",
           condition: "",
           triggerFulfillment: {
             messages: [{
               text: {
                 "text": ["<TEXT>"],
               },
               message: "text"
             }],
             setParameterActions: [],
             conditionalCases: [],
             webhook: "",
             tag: ""
           },
           name: "<NAME>"
         }]
       },
       updateMask: {
         paths: ["UPDATE_MASK"]
       },
       languageCode: "<LANGUAGE_CODE>"
     };
     const [response] = await client.updateFlow(request);
     console.log(response);
    }
    
    const projectId = "<PROJECT_ID>"
    const agentId = "<AGENT_ID>"
    const location = "<LOCATION ID>"
    const flowId = "<FLOW ID>"
    
    updateFlow(projectId, agentId, location, flowId);
    

    您可以从代理 URL 中get the IDs。对于流 ID,您必须先选择所需的流,然后再复制代理 URL。

    您还可以查看 REST API 中的等效方法以获取更多信息:projects.locations.agents.flows.getprojects.locations.agents.flows.patch

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 2020-05-31
      • 2010-11-19
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多