Я отправляю SMS с помощью Node.js вот так:
const Nexmo = require('nexmo');
const nexmo = new Nexmo({
apiKey: process.env.NEXMO_API_KEY,
apiSecret: process.env.NEXMO_API_SECRET
});
const opts = {
'type': 'unicode'
};
function sendSMS(to, content) {
nexmo.message.sendSms('qwe, to, content, opts, (err, data) => {
if (err) return console.error(err);
console.info('Data: ', data);
})
}
После ввода данных обратного вызова я получаю такой ответ:
{
"message-count":"3",
"messages":[
{
"to":"380967547714",
"message-id":"0C000000E412D0DB",
"status":"0",
"remaining-balance":"238.91280000",
"message-price":"0.07300000",
"network":"25503"
},
{
"to":"380967547714",
"message-id":"0C000000E412D0DC",
"status":"0",
"remaining-balance":"238.91280000",
"message-price":"0.07300000",
"network":"25503"
},
{
"to":"380967547714",
"message-id":"0C000000E412D0DD",
"status":"0",
"remaining-balance":"238.91280000",
"message-price":"0.07300000",
"network":"25503"
}
]
}
Возникает резонный вопрос: почему я получаю "message-count": 3? Получается, что у меня 3 перехватчика. Это должно так работать?
Я вижу, что вы отправляете сообщения Unicode. Максимальная длина, разрешенная для содержимого Unicode, составляет 70 символов, в то время как «обычные» текстовые сообщения допускают до 160 символов.
Когда одно текстовое сообщение SMS превышает 70 символов, SMS-сообщение будет разделено на несколько частей, а затем будет восстановлено на уровне трубки.
Вот почему вы получаете несколько вызовов веб-перехватчика для отправленного сообщения.
Если бы вы отправляли сообщения в виде «обычного» текстового SMS, а не в формате Unicode, у вас было бы 160 символов для одного SMS.
@Vasilii Мне было бы удобно проверять только первую часть, чтобы увидеть статус доставки. Как и все три части, теоретически все еще принадлежат к одному SMS, только то, что оно разделяется для доставки. Однако я бы рекомендовал сохранить все идентификаторы сообщений на случай, если вам понадобится устранить какие-либо проблемы позже.
Спасибо за быстрый ответ. Нужно ли мне отслеживать все обратные вызовы (или messageID), чтобы показать статус SMS на сайте?