如何在dialogflow v2中调用事件:nodejs

raj*_*_tx 1 node.js npm api-ai dialogflow-es

我正在通过 npm 使用dialogflow v2。我只想welcome在对话框流中调用一个事件。我该如何在nodejs中做到这一点?我对此还很陌生。这是我的代码

const projectId = "xxxxxx";
  const LANGUAGE_CODE = 'en-US';
  const sessionId = req.body.sessionId;
  var query = req.body.query;

  const sessionClient = new dialogflow.SessionsClient();
  const sessionPath = sessionClient.sessionPath(projectId,sessionId);
  const request = {
    session: sessionPath,
    queryInput: {
      text: {
        text: query,
        languageCode: LANGUAGE_CODE,
      },
    },
  };

  sessionClient.detectIntent(request).then(response => {
    console.log('intent detected');
    const result = response[0].queryResult;
    console.log(`  Query: ${result.queryText}`);
    console.log(`  Response: ${result.fulfillmentText}`);

    if(result.fulfillmentText) {
      console.log(result.fulfillmentText);
      return res.json({reply: result.fulfillmentText})
    }
    // if(result.intent) {
    //   console.log(`  Intent: ${result.intent.displayName}`)
    // }
    else {
      console.log('no intent found');
    }
  }).catch(err => {
    console.log('error '+err);
  })
Run Code Online (Sandbox Code Playgroud)

当我打开聊天页面时,我只想发送一条欢迎消息。为了做到这一点,我读到我必须调用该事件。我怎样才能做到这一点?我从这里获取了参考

小智 5

请求主体应该是这样的:

let eventName='WELCOME';  //name of the event

 let request = {
        session: sessionPath,
        queryInput: {
          event: {
            name: eventName,  
            languageCode: 'en-US'
          },
        },
      };
Run Code Online (Sandbox Code Playgroud)

结账- https://github.com/googleapis/nodejs-dialogflow/blob/master/samples/detect.js#L96

如果您发现任何困难,请告诉我:)