Twilio WhatsApp-发送多个消息

时间:2019-08-05 08:00:50

标签: twilio whatsapp twilio-api

是否可以选择向最终用户发送多条消息?我正在尝试发送多个图像以及正文,但是对此没有文档。

context.getTwilioClient().messages.create({
                        to: event.From,
                        from: 'whatsapp:' + context.WHATSAPP_NUMBER,
                        body: str[i]
                        mediaUrl: image[i]
                    }

循环这部分效果不错,但是它有很多错误,无法按顺序显示我的数组。

1 个答案:

答案 0 :(得分:0)

Heyoooo,这里是Twilio开发人员。 ?

发送带有多个消息的多个图像应该可以正常工作。我认为您遇到了一个常见的JavaScript问题,该问题可以解释令人困惑的顺序。

当你做这样的事情

[...].forEach((element, i) => {
    context.getTwilioClient().messages.create({
        to: event.From,
        from: 'whatsapp:' + context.WHATSAPP_NUMBER,
        body: str[i]
        mediaUrl: image[i]
    }
});

messages.create将被顺序调用,但只有很小的延迟。对API的第二次调用最有可能在第一次调用完成之前发生。以下要求也相同。

此行为甚至可能导致第二个请求比第一个请求更早命中API的状态,因为HTTP层上的某些内容花费了更长的时间(发生了……)。

您是否仅在上一个请求真正完成后才尝试像下一个呼叫那样“按顺序”运行它们?

messages.create返回一个Promise,这意味着只有当前一个完成时,您才能将Promise链接在一起进行create调用。

很难给你一个更好的代码示例,因为我不知道你的循环是什么样子,但是可以用例如reduce可让您真正按顺序运行create

[...].reduce(async (previousPromise, value, i) => {
  await previousPromise;

  return context.getTwilioClient().messages.create({
    to: event.From,
    from: 'whatsapp:' + context.WHATSAPP_NUMBER,
    body: str[i]
    mediaUrl: image[i]
  }
}, Promise.resolve());

如果您想了解其工作原理(?)here we go。 :)

希望有帮助,让我知道进展如何。