首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Twilio发送数百条不同号码的短消息将导致发送重复的消息。

使用Twilio发送数百条不同号码的短消息将导致发送重复的消息。
EN

Stack Overflow用户
提问于 2019-12-02 22:30:59
回答 1查看 511关注 0票数 1

我有一个大约470个号码的名单与不同的信息,我想发送短信。我目前正在使用Firebase函数作为我的后端。一切似乎完美地在本地工作,而没有发送重复的短信给大约5个不同的测试号码。

通过使用下面的470个数字的代码,每个号码得到相同的短信3-4次每个。我不知道问题是否与Firebase函数有关。

这个概念是用Twilio发送一条短信,如果它成功的话。我使用Firebase Firestore将消息存储在数据库中。我试图阻止Twilio用同样的信息发送重复的SMS到相同的号码。

客户端代码示例:

代码语言:javascript
复制
textMessages[
{phoneNumber: "1111111111", message: "Test message 1 ", campaign: "Test Campaign"},
{phoneNumber: "2222222222", message: "Test message 2", campaign: "Test Campaign"},
{phoneNumber: "3333333333", message: "Test message 3", campaign: "Test Campaign"}]

exports.bulkTextWeb = functions.https.onCall(async (data) => {

    const records = data.textMessages;

    for (let i = 0, j = records.length; i < j; i++) {

        const { phoneNumber, message, campaign } = records[i];

        var msgFrom = twilio_number;
        var msgTo = phoneNumber;
        var msgBody = message;

        await client.messages.create({
            to: '1' + phoneNumber,
            from: twilio_number,
            body: message
        })
            .then(async message => {

                if (message.status === 'queued' || message.status === 'sent' || message.status === 'delivered') {

                    // Check if campaign already exist
                    let docRef = await db.collection('campaigns')
                        .where('campaigns', 'array-contains', campaign).get()
                        .then(snapshot => {
                            // If there no campaign, add it to Firestore.
                            if (snapshot.empty) {
                                addCampaign(campaign);
                            }
                            // Add new message to Firestore
                            addNewMessage(msgFrom, msgTo, msgBody, campaign);
                        })
                }
            })

        if (i === (j - 1)) {

            // Return back to the client when all messages are sent
            return { messages: 'Sent' } 
        }
    }
})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-03 07:43:42

在我看来,问题中提供的代码数量是很好的,事实上,它让我记得不久前Node.js应用程序也遇到了同样的问题。

问题不在Twilio。

您通过Twilio 向发送一条消息,其中包含一个调用 of client.messages.create()。由于同一条消息被多次发送,很明显,client.messages.create()被多次调用,并且由于异步/等待而被多次调用。

我通过摆脱异步/等待并使用递归一个接一个地发送消息来解决这个问题。

您可以在我给出的答案中看到一些使用递归的代码。

这里的twillio multiple numbers whatsaap

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59147613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档