Краткий ответ
Чтобы добавить отправку SMS в приложение, вызовите SMS API провайдера из бэкенда, передав токен доступа, номер получателя в международном формате, одобренное имя отправителя (альфа-имя) и текст сообщения. Сохраните возвращённый ID сообщения, получайте статусы доставки через вебхук и до запуска обработайте ошибки, повторные попытки и лимиты запросов.
Шаги интеграции
- Получите тестовые доступы и зарегистрируйте тестовые номера, на которые будете отправлять сообщения.
- Храните API-токен в менеджере секретов или в переменной окружения на вашем сервере, но не в мобильном приложении и не в коде браузера.
- Храните номера в формате E.164 и преобразуйте их в формат, который ожидает API.
- Выберите кодировку: GSM-7 для обычного текста или Unicode для арабского, эмодзи и других алфавитов.
- Отправьте сообщение и сохраните возвращённый ID сообщения рядом с вашей собственной записью.
- Настройте вебхук для получения статусов доставки.
- Добавьте повторные попытки с увеличивающимися интервалами (backoff) для ответов 429 и 5xx и зарегистрируйте имена отправителей (альфа-имена) для каждой страны, где они требуются.
Каких ошибок избегать
- Вызов API из клиентского приложения: токен становится доступен любому.
- Отправка номеров со знаком плюс, пробелами или национальным ведущим нулём, когда API ожидает только цифры.
- Из-за одной типографской кавычки или эмодзи всё сообщение переключается на Unicode, и в сегменте помещается меньше символов.
- Слепые повторы после тайм-аута. Если у API нет ключа идемпотентности, сначала записывайте каждую отправку и проверяйте её статус перед повторной отправкой.
- Игнорирование ответов 429 вместо ожидания, указанного в заголовке Retry-After.
Пример: один запрос на отправку SMS
В OmniChannels.ai одно SMS отправляется запросом POST https://api.broadnet.me/sms/sendSms с заголовком Authorization: Bearer и телом в формате JSON. Успешный вызов возвращает ответ 200 с ID сообщения в виде обычного текста. Тестовый доступ выдаётся после короткого запроса и работает только для ваших проверенных номеров; мгновенной саморегистрации нет.
| Поле | Пример | Примечание |
|---|---|---|
| senderId | OmniDemo | Ваше одобренное имя отправителя |
| destinationNumber | 447700900123 | Код страны и номер, только цифры |
| message | Ваш код: 482913 | Текст сообщения |
| messageType | TEXT | TEXT для GSM-7, UNICODE для арабского и эмодзи |
