Коды авторизации Telegram Gateway#
В данном разделе приведено описание особенностей передачи авторизационных кодов по протоколу SMPP в Telegram Gateway.
Подробнее
Сервис Telegram Gateway предназначен для доставки пользователям мессенджера Telegram авторизационных и верификационных цифровых кодов.
Отправка кодов происходит от имени официального канала Verification Codes.
Если пользователь скрывает свой номер телефона в настройках Telegram, это не влияет на доставку сообщения. Также на доставку кодов не влияет наличие или отсутствие у пользователя подписки Telegram Premium.
Отправка цифровых кодов в Telegram возможна в текстах сообщений типа SMS. В процессе обработки сообщения будут конвертированы в TG-формат и переданы в Telegram.
На данный момент сервис поддерживает:
- отправку сообщений с кодами авторизации через Telegram;
- получение статусов доставки сообщений.
Подключение#
Подключение сервиса осуществляет служба технической поддержки Сервис-провайдера.
Для подключения Партнеру и Сервис-провайдеру необходимо согласовать данные:
сервисное имя для передачи авторизационного кода в Telegram;
время жизни сообщения.
Запрос на отправку#
В запросе на передачу авторизационного кода в Telegram необходимо указывать сервисное имя, отдельно согласованное со службой технической поддержки.
В запросе рекомендуется указать параметры и значения, относящиеся к типу сообщения SMS.
Сообщение должно содержать код от четырёх до восьми цифр.
Для отправки сообщения Партнёру следует установить соединение с сервером и передать Сервис-провайдеру пакет submit_sm,
в котором содержатся все необходимые параметры сообщения (опционально, также и TLV-параметры).
Основные параметры запроса#
Параметр |
Тип |
Описание |
|---|---|---|
source_addr |
string |
Сервисное имя, с которого будет отправлено сообщение. ПодробнееВ запросе на передачу авторизационного кода (в т.ч. в основном канале при каскадной отправке) необходимо указывать сервисное имя, отдельно согласованное со службой технической поддержки. В случае отсутствия параметра отправка производится от имени, заданного по умолчанию на платформе Сервис-провайдера (настройка по желанию Партнёра).
Кодировка значения параметра |
destination_addr |
string |
Номер телефона абонента, до 25 символов. Подробнее
Примеры: |
short_message |
string |
Текст сообщения для отправки абоненту. ПодробнееОбязательно должен содержать код от четырёх до восьми цифр. Длина сообщения: не более 2000 символов.
Длина пользовательских данных для поля
Длинные текстовые сообщения (длиннее, чем 254 октета, многосегментные с точки зрения SMPP)
рекомендуется передавать одной PDU, отправляя текст в TLV-параметре
Предупреждение Одновременное использование обоих полей недопустимо. При использовании поля
|
data_coding |
integer |
Схема/тип кодирования текста сообщения. ПодробнееЗадается в соответствии со стандартом GSM 03.38. Допустимые значения:
Если кодировка текста отличается от заявленных выше, сообщение воспринимается платформой как бинарное.
Для передачи текста сообщения рекомендуется использовать кодировку
Для передачи сообщений в латинице возможно использование
|
esm_class |
integer |
Множество значений этого параметра задается протоколом SMPP версии 3.4, раздел 5.2.12. |
registered_delivery |
integer |
Параметр указывает, необходимы ли Партнёру уведомления о статусе доставки сообщения. ПодробнееВозможные значения:
Данная опция может быть задана по умолчанию на стороне Сервис-провайдера (по запросу Партнёра). |
validity_period |
string |
ПодробнееДопустимый диапазон, сек: от 30 до 3600.
Формат значения для параметра
|
priority |
integer |
Параметр указывает на приоритет сообщения. ПодробнееСообщения с более высоким приоритетом отправляются оператору в первую очередь.
Возможные значения — от
Примечание По умолчанию использование данного параметра недоступно. Подключение данного функционала следует согласовывать со своим курирующим менеджером. |
TLV-параметры запроса#
TLV-параметры для отправки сообщений от Партнёра к Сервис-провайдеру.
TLV-параметр |
Поле |
Размер (октетов) |
Тип |
Описание |
|---|---|---|---|---|
message_payload |
Tag |
2 |
Integer |
id = 0x0424 |
Length |
2 |
Integer |
Длина параметра в октетах. |
|
Value |
до 2048 |
Octet String |
Текст сообщения длиной более 254 октетов. Подробнее
Текст сообщения следует вставлять либо в поле
Одновременное использование обоих полей недопустимо.
При использовании поля |
|
ptag |
Tag |
2 |
Integer |
id = 0x1411 |
Length |
2 |
Integer |
Длина параметра в октетах. |
|
Value |
до 1000 |
Octet String |
Идентификатор сообщения в системе Партнёра. ПодробнееМожет содержать от 1 до 50 символов. Допустимые символы: 0...9a...zA...Z-. Это может быть любой идентификатор в системе Партнёра. Например, уникальный идентификатор сообщения или идентификатор подразделения, инициирующего запрос на отправку.
Сервис-провайдер не контролирует значения, переданные
в параметре |
Ответ на запрос#
На пакет submit_sm сервер Сервис-провайдера отвечает пакетом submit_sm_resp с полем command_status.
Если пакет принят и обработан успешно, тело пакета submit_sm_resp будет содержать message_id — уникальный идентификатор (целое положительное число),
присвоенный на сервере Сервис-провайдера данному PDU.
В дальнейшем значение message_id используется Партнёром для получения и анализа статусов доставки сообщения.
Возможные значения поля command_status приведены в таблицах ниже.
Ответ при успешной отправке#
В случае успешной отправки возвращается код ответа (HEX) 0x00.
Код (HEX) |
Описание |
Действие Партнёра |
|---|---|---|
0x00 |
Пакет принят успешно. |
Ошибок нет, штатная работа сервиса. |
Ошибки при отправке#
Для ошибочных результатов код ответа (HEX) будет отличный от 0x00.
Код (HEX) |
Описание |
Действие Партнёра |
|---|---|---|
0x01 |
Превышена допустимая длина текста сообщения. |
Что делатьПартнёр может сократить текст до допустимых значений и повторить попытку отправки сообщения. |
0x03 |
Партнёр передал PDU неподдерживаемого типа
( |
Что делатьПартнёр устраняет ошибки на своей стороне. |
0x08 |
Общая системная ошибка на сервере. |
Что делатьПартнёр может повторить попытку отправить сообщение. Если ошибка повторяется, следует прекратить попытки отправить сообщение и обратиться в Службу технической поддержки, предоставив наиболее полную информацию об условиях возникновения данной ошибки. |
0x0A |
Неверное имя отправителя. Подробнее
Партнёр передал в параметре
|
Что делать
Партнёр устраняет ошибки на своей стороне, после
этого может повторить отправку сообщения с
корректным |
0x0B |
Неверный номер получателя. ПодробнееПопытка отправить сообщение на номер, для которого запрещена отправка сообщений. |
Что делатьПартнёр не должен повторять отправку сообщения. Партнёру следует обратиться к менеджеру Сервис-провайдера для выяснения возможности отправки сообщений на данный номер. |
0x0C |
Передано некорректное значение TLV-параметра
|
Что делатьПартнёр исправляет значение параметра и может повторить попытку отправки сообщения. |
0x14 |
Очередь на отправку сообщений от Партнёра достигла максимально допустимого значения. ПодробнееПример. Для сервиса Партнёра установлено максимальное количество сообщений в очереди для отправки абонентам — 100 сообщений. Если в очереди отправки Партнёра скопилось более 100 сообщений, то Сервис-провайдер отвечает этим кодом ошибки пока очередь не уменьшится. |
Что делать
Партнёр приостанавливает процесс отправки SMS
( Если ошибка повторится более пяти раз подряд, следует прекратить процесс отправки сообщений и обратиться в Службу технической поддержки, предоставив наиболее полную информацию об условиях возникновения данной ошибки. |
0x45 |
Попытка отправить сообщения после завершения триал-периода или при превышении количества разрешенных для триал-периода сообщений. |
Что делатьПартнёр не должен повторять отправку сообщения. |
0x55 |
Превышен порог максимального количества ответных сообщений для режима «запрос-ответ» или «смешанный». |
Что делатьПартнёр должен дождаться следующего входящего сообщения от абонента. |
0x58 |
Превышена пропускная способность, установленная для Партнёра. ПодробнееПример. Для сервиса Партнёра установлена допустимая скорость 10 сообщений в секунду. Партнёр отправил 12 сообщений в секунду. Первые 10 сообщений будут успешно обработаны — Сервис-провайдер отправит сообщения абонентам.
В ответ на последние два сообщения
Сервис-провайдер вернет Партнёру код ошибки
|
Что делать
Партнёр останавливает процесс отправки
(
|
0x61 |
Указано некорректное значение параметра
|
Что делать
Партнёр устраняет ошибки на своей стороне, после чего
может повторить отправку с корректным
|
0x62 |
Превышен лимит продолжительности транзакции. Подробнее
Ошибка возникает, если значение,
переданное в
|
Что делать
Партнёр может повторить отправку с правильным
значением параметра |
0xAB |
Попытка отправить дубликат сообщения. ПодробнееПример. Для сервиса Партнёра включен функционал блокировки дубликатов. Партнёр отправил в течение суток три запроса на отправку сообщения на один и тот же номер абонента с одинаковым текстом. Первый запрос будет успешно обработан и сообщение будет отправлено абоненту.
В ответ на последние два запроса
Сервис-провайдер вернет Партнёру код ошибки
Функционал блокировки дубликатов по умолчанию отключен для Партнёра. Функционал может быть включен по просьбе Партнёра. |
Что делатьПартнёр не должен повторять отправку сообщения. |
0xC4 |
Партнёр передал некорректное значение в одном из TLV-параметров. |
Что делатьПартнёр устраняет ошибки на своей стороне, после чего может повторить отправку сообщения с корректным набором параметров. |
0x500 |
Ошибка будет возникать при условии, если в настройках интеграционного SMPP-клиента в параметрах протокола «Параметры протокола» задан определённый метод склейки («Склеивать через UDH» или «Склеивать через TLV»), а от SMPP-клиента придет пакет, не соответствующий данному типу обработки. ПодробнееОшибка не будет проявляться, если выбран параметр «Определять автоматически» (значение по умолчанию). В данном случае при получении от SMPP-клиента автоматически определяется тип пакета и выполняется склейка сообщения по определенному методу. |
Что делатьПри возникновении данной ошибки Партнёр останавливает процесс отправки сообщений, изменяет метод отправки данных сообщений на своей стороне (TLV или UDH), повторяет отправку данных сообщений. Если ошибка после проделанных изменений возникает снова, следует обратиться в Службу технической поддержки Сервис-провайдера, предоставив наиболее полную информацию об условиях возникновения данной ошибки. |
Примечание
Если сервис Партнёра не отвечает на запросы Сервис-провайдера, выполняется Повторная обработка сообщений.
Статусы доставки сообщений#
Для получения статусов сообщений необходимо настроить Сервис получения статусов доставки.
Коды ошибок доставки#
Коды ошибок доставки, в зависимости от типа сообщения, приведены в соответствующей вкладке в разделе Описание кодов ошибок (поле err).
Каскадная отправка#
Каскадная рассылка для передачи авторизационных кодов по протоколу SMPP недоступна (см. Каскадная рассылка).