Перейти к содержимому
OmniChannels.ai
Меню

API и SMPP

Как добавить отправку SMS в приложение через API?

Обновлено

Краткий ответ

Чтобы добавить отправку SMS в приложение, вызовите SMS API провайдера из бэкенда, передав токен доступа, номер получателя в международном формате, одобренное имя отправителя (альфа-имя) и текст сообщения. Сохраните возвращённый ID сообщения, получайте статусы доставки через вебхук и до запуска обработайте ошибки, повторные попытки и лимиты запросов.

Шаги интеграции

  1. Получите тестовые доступы и зарегистрируйте тестовые номера, на которые будете отправлять сообщения.
  2. Храните API-токен в менеджере секретов или в переменной окружения на вашем сервере, но не в мобильном приложении и не в коде браузера.
  3. Храните номера в формате E.164 и преобразуйте их в формат, который ожидает API.
  4. Выберите кодировку: GSM-7 для обычного текста или Unicode для арабского, эмодзи и других алфавитов.
  5. Отправьте сообщение и сохраните возвращённый ID сообщения рядом с вашей собственной записью.
  6. Настройте вебхук для получения статусов доставки.
  7. Добавьте повторные попытки с увеличивающимися интервалами (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 сообщения в виде обычного текста. Тестовый доступ выдаётся после короткого запроса и работает только для ваших проверенных номеров; мгновенной саморегистрации нет.

ПолеПримерПримечание
senderIdOmniDemoВаше одобренное имя отправителя
destinationNumber447700900123Код страны и номер, только цифры
messageВаш код: 482913Текст сообщения
messageTypeTEXTTEXT для GSM-7, UNICODE для арабского и эмодзи

Официальные источники