使用followupEventInput

时间:2018-04-24 13:39:05

标签: actions-on-google dialogflow

我尝试将V1应用程序迁移到新的API V2,并且我遇到了followupEvent功能的问题。

这是我的用例:

  • 用户想要打开特定房间的灯光 - >我有一个 使用参数“zone”意图“light_on”。
  • 如果名称与已知房间不对应,则为webhook响应 包含一个followupEvent来调用意图“unknown_zone”。
  • 此意图告诉用户“抱歉,我不知道指定区域 '#unknown_zone.zone'。你能重复一下这个区域的名字吗?“。用户 然后有3次试图给出一个有效的名字。

为此,在V1中,我的webhook响应是:

{
      "contextOut":[{
          "name":"zone",
          "lifespan":3
       }],
      "followupEvent":{
          "name":"unknown_zone",
          "data":{
              "context_lifespan":"3",
              "current_action":"light_on",
              "zone":"garage"
            }
        }
    }

在V2中,我尝试发送以下回复:

{
  "outputContexts": [{
    "name": "zone",
    "lifespanCount": 3
  }],
  "followupEventInput": {
    "name": "unknown_zone",
    "parameters": {
      "zone": "garage",
      "current_action": "light_on",
      "context_lifespan": "3"
    },
    "languageCode":"en-US"
  }
}

永远不会调用意图“unknown_zone”。我只收到“light_on”意图的默认回复。

我搜索了文档:WebhookResponseEventInput但没有任何帮助。 我也发现了这个话题v2-followupevent-from-webhook-upgrade-from-v1,但没有成功。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:3)

我只知道为什么我的回答不起作用。我没有关注输出上下文名称的新V2 format

格式:projects / {Project ID} / agent / sessions / {Session ID} / contexts / {my_context_name}

意图永远不会匹配,因为上下文没有正确设置。

答案 1 :(得分:0)

followupEventInput对象中的name属性是指在intent中定义的事件,而不是intent本身。您必须在intent的事件部分中添加事件“unknown_zone”,如图所示 this screenshot