1

这是我的代码

exports.handler = function(context, event, callback) {
  let twiml = new Twilio.twiml.VoiceResponse();
  twiml.gather({ numdigit:"1", tiemout:"5"}).say("some message , press 9 to repeat");

  if(event.numdigit === 9)
  {
      twiml.repeat;
  }
  else if(event.numdigit != 9){
      twiml.say("soory");
  }
  callback(null, twiml);
};

我是 twilio 函数的新手。我已经浏览了文档,但找不到任何关于此的内容。

当我打电话给号码“一些消息,按 9 重复”时,有人说,但我想在按下 9 时重复该消息,并且在按下 9 以外的号码时应该播放抱歉

目前,如果我按下 9 以外的数字,那么也会播放相同的消息。如果我确实按了任何东西,那么它会变成“对不起”

任何人都可以提出解决方案

4

1 回答 1

0

Twilio 开发人员布道者在这里。

这里可能令人困惑的是,作为调用的一部分,这个函数实际上被调用了两次。

<Gather>工作原理是这样的:当用户输入数字时,Twilio 发出一个新的 HTTP 请求,其Digits参数为<Gather> action属性或默认为与当前响应相同的 URL。在您的情况下,这意味着它将再次请求相同的 Twilio 功能。

没有可重复的 TwiML,所以我们需要再说一遍。下面是一个如何实现的示例,通过为初始请求和Digits参数不是“9”的任何请求返回相同的 TwiML:

exports.handler = function(context, event, callback) {
  const message = "some message , press 9 to repeat";
  const gatherOptions = { numdigit:"1", tiemout:"5"};
  let twiml = new Twilio.twiml.VoiceResponse();

  if (event.Digits) {
    if(event.Digits === '9') {
      twiml.gather(gatherOptions).say(message);
    } else {
      twiml.say("sorry");
    }
  } else {
    twiml.gather(gatherOptions).say(message);
  }
  callback(null, twiml);
};

让我知道这是否有帮助。

于 2018-12-17T04:05:10.810 回答