如何确定Intent是否来自隐式调用?

时间:2019-09-21 16:06:38

标签: actions-on-google dialogflow-fulfillment

在DialogFlow中,在Google Assistant集成设置中,我向DialogFlow代理中的一种意图添加了“隐式调用”。

该Intent已发送给我的Node.js代码以实现。在该代码中,我怎么知道它是通过“隐式调用”调用的,还是在用户与代理进行交互时调用的?

我需要以略有不同的方式回应,并立即结束对话。因此,我需要知道它是否来自深层链接。我不能简单地做出不同的Intent,因为训练短语都是相同的。

1 个答案:

答案 0 :(得分:0)

我发现的唯一方法是检查对话对象的type属性。

如果它是“ NEW”,则这是第一个联系人,如果我们不在欢迎意向中,则可能是深层链接。

例如,仅给出响应并关闭对话:

const { dialogflow } = require('actions-on-google');
const app = dialogflow();

---

app.intent('say hello', (conv) => {
  conv.ask('Hello!');

  var isDeepLinked = conv.type === 'NEW';

  if(isDeepLinked){
    conv.ask('and Goodbye.');
    conv.close();
  }
});

如果有人可以指向此文档,请这样做!