1

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

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

我使用了Dialogflow CX 提供的 node.js客户端库

我还使用同一资源中的默认启动流程。

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

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

4

1 回答 1

0

起始页中的属性(路由/事件处理程序)实际上在流本身中。

您可以使用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获取 ID 。对于流 ID,您必须先选择所需的流,然后再复制代理 URL。

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

于 2021-06-24T22:10:08.903 回答