如何使用Twilio功能重复消息?

时间:2018-12-12 09:15:30

标签: javascript function twilio twilio-functions twilio-programmable-voice

这是我的代码

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以外的数字,则还会播放相同的消息。如果我确实按了任何东西,那么它将变成“对不起”

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

1 个答案:

答案 0 :(得分:0)

这里是Twilio开发人员的传播者。

在这里可能令人困惑的是,此函数实际上是在调用过程中两次被调用。

<Gather>的工作方式如下:当用户输入数字时,Twilio使用Digits action attribute<Gather>参数或默认情况下使用与当前响应相同的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);
};

让我知道是否有帮助。