如何使用 Node Js 在 Twilio 中发送大量短信?
How to send SMS masive in Twilio with Nodejs?
我想知道如何向不同号码发送消息。我的意思是,将 SMS 作为通知发送到同一字符串数组中的不同号码。类似于:
body: "Hello Word!"
number:["+2222", "+2222", "+2222"]
可以用 twilio 做到这一点吗?
应该是可以的,如果用mail可以,电话号码是怎么做到的?
我正在使用 nodeJs 并且有类似的东西:
更新代码
const sendBulkMessages = async(req, res) => {
let messageBody = req.body;
let numberList = req.body;
var numbers = [];
for (i = 0; i < numberList.length; i++) {
numbers.push(JSON.stringify({
binding_type: 'sms',
address: numberList[i]
}))
}
const notificationOpts = {
toBinding: numbers,
body: messageBody,
};
const response = await client.notify
.services(SERVICE_SID)
.notifications.create(notificationOpts)
.then(notification => console.log(notification.sid))
.catch(error => console.log(error));
console.log(response);
res.json({
msg: 'Mensaje enviado correctamente'
});
}
但它告诉我一个错误,我没有发送正文,而实际上我确实发送了。
有人可以帮助我吗?请
您似乎正试图通过 post 请求将这些消息发送到 Express 应用程序。问题是您没有正确地从请求正文中提取数据。
如果您的 POST
请求正文是一个 JSON 对象,如下所示:
{
"toBinding": ['+222', '+222'],
"body": 'Hello'
}
然后您需要确保将请求正文解析为 JSON,通常是添加 Express body parser JSON middleware,然后像这样从请求正文中提取数据:
let messageBody = req.body.body;
let numberList = req.body.toBinding;
完整脚本如下:
const sendBulkMessages = async(req, res) => {
let messageBody = req.body.body;
let numberList = req.body.toBinding;
var numbers = [];
for (i = 0; i < numberList.length; i++) {
numbers.push(JSON.stringify({
binding_type: 'sms',
address: numberList[i]
}))
}
const notificationOpts = {
toBinding: numbers,
body: messageBody,
};
const response = await client.notify
.services(SERVICE_SID)
.notifications.create(notificationOpts)
.then(notification => console.log(notification.sid))
.catch(error => console.log(error));
console.log(response);
res.json({
msg: 'Mensaje enviado correctamente'
});
}
经过检查 your repo,您的功能似乎确实正确,但您导出和要求功能的方式却不正确。
您不能像这样导出函数:
module.exports = sendMessage, sendMessageWhatsapp, sendBulkMessages;
只导出第一个函数,其他的忽略。所以我将其更新为:
module.exports = { sendMessage, sendMessageWhatsapp, sendBulkMessages };
这将导出一个包含三个函数的对象。然后,当你需要这些功能时,你不能这样做:
const sendMessage = require('./message');
const sendMessageWhatsapp = require('./message');
const sendBulkMessages = require('./message');
这需要相同的功能三次。通过以上更新,您现在可以执行以下操作:
const {
sendMessage,
sendBulkMessages,
sendMessageWhatsapp,
} = require("./message");
我想知道如何向不同号码发送消息。我的意思是,将 SMS 作为通知发送到同一字符串数组中的不同号码。类似于:
body: "Hello Word!"
number:["+2222", "+2222", "+2222"]
可以用 twilio 做到这一点吗?
应该是可以的,如果用mail可以,电话号码是怎么做到的?
我正在使用 nodeJs 并且有类似的东西:
更新代码
const sendBulkMessages = async(req, res) => {
let messageBody = req.body;
let numberList = req.body;
var numbers = [];
for (i = 0; i < numberList.length; i++) {
numbers.push(JSON.stringify({
binding_type: 'sms',
address: numberList[i]
}))
}
const notificationOpts = {
toBinding: numbers,
body: messageBody,
};
const response = await client.notify
.services(SERVICE_SID)
.notifications.create(notificationOpts)
.then(notification => console.log(notification.sid))
.catch(error => console.log(error));
console.log(response);
res.json({
msg: 'Mensaje enviado correctamente'
});
}
但它告诉我一个错误,我没有发送正文,而实际上我确实发送了。
有人可以帮助我吗?请
您似乎正试图通过 post 请求将这些消息发送到 Express 应用程序。问题是您没有正确地从请求正文中提取数据。
如果您的 POST
请求正文是一个 JSON 对象,如下所示:
{
"toBinding": ['+222', '+222'],
"body": 'Hello'
}
然后您需要确保将请求正文解析为 JSON,通常是添加 Express body parser JSON middleware,然后像这样从请求正文中提取数据:
let messageBody = req.body.body;
let numberList = req.body.toBinding;
完整脚本如下:
const sendBulkMessages = async(req, res) => {
let messageBody = req.body.body;
let numberList = req.body.toBinding;
var numbers = [];
for (i = 0; i < numberList.length; i++) {
numbers.push(JSON.stringify({
binding_type: 'sms',
address: numberList[i]
}))
}
const notificationOpts = {
toBinding: numbers,
body: messageBody,
};
const response = await client.notify
.services(SERVICE_SID)
.notifications.create(notificationOpts)
.then(notification => console.log(notification.sid))
.catch(error => console.log(error));
console.log(response);
res.json({
msg: 'Mensaje enviado correctamente'
});
}
经过检查 your repo,您的功能似乎确实正确,但您导出和要求功能的方式却不正确。
您不能像这样导出函数:
module.exports = sendMessage, sendMessageWhatsapp, sendBulkMessages;
只导出第一个函数,其他的忽略。所以我将其更新为:
module.exports = { sendMessage, sendMessageWhatsapp, sendBulkMessages };
这将导出一个包含三个函数的对象。然后,当你需要这些功能时,你不能这样做:
const sendMessage = require('./message');
const sendMessageWhatsapp = require('./message');
const sendBulkMessages = require('./message');
这需要相同的功能三次。通过以上更新,您现在可以执行以下操作:
const {
sendMessage,
sendBulkMessages,
sendMessageWhatsapp,
} = require("./message");