自动驾驶重定向到新任务无法正常工作

时间:2019-04-19 19:51:57

标签: twilio twilio-api

因此,自从补丁发布以来,当您不再需要构建时,我已经在这里工作了一段时间,并且已经看到当我进入第二个重定向到另一个任务并且该任务侦听时,它只是无法收听,而是返回到其后备任务。

我试图在重定向和此类之间不使用任何函数,我已经在我的Twilio函数中使用了直接发布,但这些都不起作用。我确实有一个包含两个问题的问卷,并且完整的标签是重定向,这是我的任务开始失败的地方。

 "actions": [
  {
   "say": {
    "speech": "I just have a few questions"
   }
  },
  {
   "collect": {
    "name": "questions",
    "questions": [
     {
      "question": "Is the weather nice today",
      "name": "q_1",
      "type": "Twilio.YES_NO",
     },
     {
      "question": "Do you like ice cream?",
      "name": "q_2",
      "type": "Twilio.YES_NO",
     }
    ],
    "on_complete": {
     "redirect": "MY FUNCTION LINK"
    }
   }
  }
 ]
}

然后函数将其返回为JSON:

responseObject = {
 "actions": [
  { 
   "redirect": "task://MY TASK" 
  }
 ]
};

然后任务如下:

{
 "actions": [
  {
   "say": "Would you like to be transfered over, or be called later?"
  },
  {
   "listen": {
    "tasks": [
     "transfer",
     "calllater"
    ]
   }
  }
 ]
}

但是被监听的任务永远不会完成,而且我的日志似乎并不存在。

该任务应转到列出的正确任务,但它只会崩溃并返回到后备任务。我必须弄清楚为什么这行不通,请让我知道。

1 个答案:

答案 0 :(得分:1)

此处是Twilio开发人员的传播者。

我刚刚接受了您发布的代码并对其进行了调整,因此效果很好。让我告诉你我做了什么。

我创建了一个欢迎任务

// welcome task
{
    "actions": [
        {
            "say": {
                "speech": "I just have a few questions"
            }
        },
        {
            "collect": {
                "name": "questions",
                "questions": [
                    {
                        "question": "Do you like ice cream?",
                        "name": "q_2",
                        "type": "Twilio.YES_NO"
                    }
                ],
                "on_complete": {
                    "redirect": "https://picayune-snout.glitch.me/api/collect"
                }
            }
        }
    ]
}

此任务与您的示例类似,定义了一个hosted on Glitchon_complete端点。端点使用如下所示的JSON进行响应。

module.exports = (req, res) => {
  res.setHeader('Content-Type', 'application/json');
  res.send(JSON.stringify(
    {
      "actions": [      
        {
            "say": {
                "speech": "Thanks for you information"
            }
        },
        { 
         "redirect": "task://continue" 
        }
      ]
    }
  ));
}

然后,我定义了与您相似的继续任务

{
    "actions": [
        {
            "say": "Would you like to be transfered over, or be called later?"
        },
        {
            "listen": {
                "tasks": [
                    "transfer",
                    "calllater"
                ]
            }
        }
    ]
}

calllatertransfer仅使用say,它可以正常工作。重要的一点是您为这两项任务定义了样本,以便系统可以识别它们。另外,您还必须为自然语言路由器重建模型。

Samples for a task

Rebuild model dialog

很难说出您做错了什么。 :/