Регистрация

Разное

Коды ответов API

Глоссарий

Список возможных статусов SMS-сообщений

URL-кодирование строк

Коды ответов API

Каждый ответ на запрос к API возвращает массив, состоящий из трех полей, одно из которых – code. Это поле содержит статус обработки запроса и может служить руководством к дальнейшим действиям со стороны клиентского приложения. В следующей таблице приведены коды API и их значения:

КодОписание
0Операция завершена успешно.
1Ошибка валидации передаваемых данных во время создания или обновления какой-либо сущности. В поле data представлена информация о том, какие поля заполнены неверно. Следует исправить ошибки и повторить запрос с новыми данными.
2Указанная запись не найдена. Скорее всего она была удалена, ID записи указан неверно или у пользователя, пытающегося получить доступ к этой записи, нет соответствующих прав доступа к этой записи.
3Неопознанная ошибка приложения. Обратитесь в службу поддержки и сообщите детали запроса, при котором она была получена.
4Неверно указан параметр module. Проверьте правильность написания параметра в документации к API.
5Неверно указан параметр method. Проверьте правильность написания параметра в документации к API.
6Неверно указан параметр format. Проверьте правильность написания параметра в документации к API.
8Ошибка входа в систему. Возникает в случаях, когда:
  • Неправильно указанны данные для входа;
  • Когда во время работы с системой сессия пользователя истекла или была принудительно закрыта сервером.
Более подробную информацию можно увидеть в поле message.
9Ошибка доступа к указанному методу API.
10Ошибка во время сохранения данных на сервере непосредственно в процессе выполнения данной операции. Обычно эта ошибка связана с одновременным доступом к данным из нескольких клиентов или изменением условий сохранения данных в процессе их сохранения.
11Некоторые обязательные параметры отсутствуют в запросе. Проверьте правильность написания параметров в документации к API и дополните запрос необходимыми параметрами.
12Входной параметр запроса не удовлетворяет установленным условиям или ограничениям. Данный код ошибки возникает в случаях, когда при выполнении запроса с параметрами какой-либо параметр нарушает ограничения. Похоже на ошибку валидации атрибутов, но может быть получено в запросах, которые не производят создание или изменение данных.
13Попытка сделать запрос к серверу API, который не обслуживает данного пользователя. В случае получения этого кода правильный домен можно получить в поле data.
14Данная ошибка возникает в случае, если аккаунт пользователя заблокирован или удален.
15Ошибка во время выполнения какой-либо операции, не связанной с обновлением данных. Детали данной ошибки указаны в поле message ответа API.
30Ошибка превышения допустимого лимита скорости запросов. Данная ошибка возникает при чрезмерно частых обращениях к одному и тому же методу API в течение определенного промежутка времени. В случае возникновения ошибки следует уменьшить частоту запросов.
98Операция выполнена не в полном объеме, а только с частью данных. Обычно данный код возвращается при каких-либо массовых операциях, во время выполнения которых некоторые элементы не были обработаны из-за ошибок или ограничений, но часть элементов обработана. В случае получения этого кода можно получить информацию о том, какие элементы были обработаны, а какие нет и с какими ошибками, получив содержимое поля data.
99Ни один из элементов массовой операции не был обработан. Подробную информацию об ошибках в каждом конкретном элементе можно получить в поле data, а общее описание ошибки в поле message.
100Данный код не является ошибкой и означает, что операция была отправлена в фоновое выполнение. В этом случае поле data содержит ID фоновой операции, процесс и окончание которой можно отследить при помощи API TaskQueue/GetStatus.
999Общая ошибка сервиса. Детали можно получить в поле message.

Глоссарий

ID – уникальный идентификатор, который позволяет однозначно определить искомый объект: кампанию, группу и т.д.

Контактная карта – запись в Контактной книге, содержащая данные клиента, такие как: ФИО, email, дату рождения и другую информацию. Обязательно должна содержать номер телефона.

Подпись отправителя (Sender ID, альфанумерическое имя) – отображается в качестве отправителя SMS на телефоне получателя вместо номера телефона.
К подписям отправителя существует ряд требований.

Общая подпись (отправителя SMS) – одна из подписей сервиса, используемая при отправке сообщения, в случае, если у пользователя нет подписей или выбранная подпись недоступна для отправки на указанный номер телефона.

Получатель (абонент) – пользователь услуг мобильной связи, на номер которого происходит отправка SMS-сообщения.

Короткая ссылка – сокращенный (альтернативный) URL-адрес для доступа к WEB-странице.

Использование короткой ссылки вместо обычной минимизирует ненамеренное искажение URL – короткую ссылку легче запомнить, скопировать или ввести вручную.

Статистические данные предоставляются в удобной форме: можно увидеть количество кликов за последние 2 часа, день, неделю, 30 дней или все время (детальнее см. в разделе короткие ссылки).

Также короткие ссылки удобно использовать в SMS. Они позволяют уменьшить стоимость отправки за счет меньшего количества символов в сообщении.

При использовании короткой ссылки, созданной в нашем сервисе, есть возможность задействовать функцию отслеживания получателей, открывших ссылку.

Персональная ссылка (ссылка отслеживания получателя) – специальная короткая ссылка, созданная при помощи нашего сервиса и позволяющая отследить кто именно из получателей SMS-рассылки перешел по ней. Ссылка уникальна для каждого отдельного получателя SMS.

Функция отслеживания получателей – инструмент сбора статистики о получателях, которые перешли по короткой ссылке, размещенной в сообщении.

Это удобное и эффективное средство для аналитики целевой аудитории и оценки эффективности SMS-кампании.

Функция доступна для SMS-сообщений, содержащих гиперссылки. Чтобы активировать функцию, необходимо в Форме Отправки SMS нажать кнопку замены обычной ссылки на короткую и проверить, стоит ли галочка напротив опции «отслеживать получателей».

Отчет о доставке сообщения (DLR) – информация от оператора связи о статусе доставки SMS-сообщения получателю.

SMS Кампания – позволяет сгруппировать множество получателей одного SMS и проанализировать результаты SMS-рассылки.

Одиночная кампания – отправка сообщения на один номер.

Массовая кампания – отправка сообщения на два и более номеров.

Функциональная (служебная) кампания – в нее входят функциональные или, другими словами, служебные сообщения системы, например, сообщения с кодом подтверждения номера из форм.

Шаблонная кампания – тип SMS-кампании, в которой используется особая форма сообщения, содержащая плейсхолдеры, которые заменяются на персональный для каждого получателя текст.

Пример шаблона

В фигурных скобках {} размещены плейсхолдеры.

Шаблонный текст с плейсхолдерамиТекст, который будет доставлен получателю
Здравствуйте, {name}! Ваш баланс на {date} составляет {balance}{currency}.Здравствуйте, Иван! Ваш баланс на 12.09.2019 составляет 15.50 грн.
{name}, машина подъехала ({carNumber}). Телефон водителя: {driverPhone}.Алексей, машина подъехала (АА 4444). Телефон водителя: 099 999 99 99.
Напоминаем, что вы записаны на прием в {place}. Дата приема: {date}.Напоминаем, что вы записаны на прием в Клинике 11.11.2019 на 11:30.

Форма – удобный инструмент для сбора данных о клиентах, проведения электронных опросов, формирования базы номеров для рассылки и множества других задач.

С помощью Форм ваши клиенты могут подписаться на SMS-рассылку, новости, акции и т.д.

Благодаря гибкому и интуитивно понятному конструктору полей вы можете легко создать Форму, максимально эффективную для ваших задач.

Кроме того, вы можете настроить оформление Формы: выбрать цвет текста, кнопок, фона и т.д. Подробнее о создании Форм вы можете узнать в разделе “Формы”.

Список возможных статусов SMS-сообщений

СтатусОкончательныйОписание
NEWнетНовое сообщение, еще не было отправлено.
ENQUEUDнетПоставлено в очередь на отправку.
ACCEPTDнетОтправлено из системы и принято оператором для дальнейшей пересылки получателю.
UNDELIVдаНе доставлено получателю.
REJECTDдаОтклонено оператором по одной из множества причин – неверный номер получателя, запрещенный текст, подпись отправителя не зарегистрирована, и т.д.
PDLIVRDнетНе все сегменты сообщения доставлены получателю (этот статус может быть только у сообщений, но не у сегментов). Некоторые операторы возвращают отчет только о первом доставленном сегменте, поэтому такое сообщение после истечения срока жизни перейдет в статус, установленный для первого сегмента.
DELIVRDдаДоставлено получателю полностью.
EXPIREDдаДоставка не удалась так как истек срок ожидания, в течение которого сообщение так и не было доставлено получателю. Как правило, доставка невозможна, если телефон получателя отключен, находится вне зоны действия сети или память устройства переполнена. Максимальное время ожидания доставки - 1 сутки с момента отправки.
DELETEDдаУдалено из-за каких-либо ограничений на стороне оператора связи и не доставлено получателю.

URL-кодирование строк

В каждом серверном языке в том или ином виде есть функция, которая возвращает строку, в которой все не цифро-буквенные символы, кроме - _ . должны быть заменены знаком процента (%), за которым следует два шестнадцатеричных числа, а пробелы закодированы как знак сложения (+). Строка кодируется тем же способом, что и POST-данные веб-формы, то есть по типу контента application/x-www-form-urlencoded. Это отличается от кодирования по RFC 3986 в том, что по историческим причинам, пробелы кодируются как знак "плюс" (+).

Реализация в различных языках программирования

ЯзыкФункцияСсылка на документацию
PHPurlencodehttp://php.net/manual/ru/function.urlencode.php
.NetHttpUtility.UrlEncode
WebUtility.UrlEncode
https://docs.microsoft.com/en-us/dotnet/api/system.web.httputility.urlencode
https://docs.microsoft.com/en-us/dotnet/api/system.net.webutility.urlencode
Pythonurllib.parse.quote_plushttps://docs.python.org/3/library/urllib.parse.html#urllib.parse.quote_plus
JavaURLEncoder.encodehttps://docs.oracle.com/javase/8/docs/api/java/net/URLEncoder.html
JavaScriptencodeURIComponenthttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent