Коды авторизации Telegram Gateway#
В данном разделе приведено описание особенностей передачи авторизационных кодов по протоколу HTTP в Telegram Gateway.
Подробнее
Сервис Telegram Gateway предназначен для доставки пользователям мессенджера Telegram авторизационных и верификационных цифровых кодов.
Отправка кодов происходит от имени официального канала Verification Codes.
Если пользователь скрывает свой номер телефона в настройках Telegram, это не влияет на доставку сообщения. Также на доставку кодов не влияет наличие или отсутствие у пользователя подписки Telegram Premium.
Отправка цифровых кодов в Telegram возможна в текстах сообщений типа SMS. В процессе обработки сообщения будут конвертированы в TG-формат и переданы в Telegram.
На данный момент сервис поддерживает:
- отправку сообщений с кодами авторизации через Telegram;
- получение статусов доставки сообщений;
- каскадную передачу сообщений в SMS в случае недоставки в Telegram (при необходимости).
Подключение#
Подключение сервиса осуществляет служба технической поддержки Сервис-провайдера.
Для подключения Партнеру и Сервис-провайдеру необходимо согласовать данные:
сервисное имя для передачи авторизационного кода в Telegram;
время жизни сообщения.
Запрос на отправку#
В запросе на передачу авторизационного кода в Telegram необходимо указывать сервисное имя, отдельно согласованное со службой технической поддержки.
В запросе рекомендуется указать параметры и значения, относящиеся к типу сообщения SMS
.
Сообщение должно содержать код от четырёх до восьми цифр.
Метод: GET.
Примеры запросов#
GET-запрос с сообщением на латинице code 12345
в простом текстовом формате:
http://partner.ru/login?serviceId=login&pass=123&clientId=79161234567&message=code%2012345
HTTP/1.1
Host: 10.10.10.10:9080
GET-запрос с текстом сообщения на кириллице код 12345
в URL-формате:
http://partner.ru/login?serviceId=login&pass=123&clientId=79161234567&message=%D0%BA%D0%BE%D0%B4+12345
HTTP/1.1
Host: 10.10.10.10:9080
Параметры запросов#
В таблице обязательные параметры выделены полужирным шрифтом.
Параметр |
Тип |
Описание |
---|---|---|
clientId |
string |
Номер телефона абонента, до 25 символов. Примеры: 79036550550, +79036550550, 8-903-655-05-50, 89036550550. |
message |
string |
Сообщение для отправки абоненту.
Должно содержать код от четырёх до восьми цифр.
ПодробнееТекст в данном параметре должен быть в кодировке UTF-8. Максимально допустимая длина сообщения: 2000 символов. |
serviceId |
string |
Идентификатор сервиса (логин), от имени которого происходит отправка сообщения. Подробнее
Сервис-провайдер заводит логин |
pass |
string |
Пароль для авторизации в сервисе. ПодробнееСервис-провайдер заводит пароль при подключении сервиса и сообщает его Партнёру. |
ptag |
string |
Идентификатор сообщения в системе Партнёра. ПодробнееДопустимые символы: 0...9a...zA...Z- Количество символов: от одного до 50.
Это может быть любой идентификатор в системе Партнёра. Например, уникальный
идентификатор сообщения или идентификатор подразделения, инициирующего запрос на
отправку. В отличие от параметра Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (см. Сервис получения статусов доставки). |
source |
string |
Сервисное имя отправителя. ПодробнееВ запросе на передачу авторизационного кода (в т.ч. в основном канале при каскадной отправке) необходимо указывать сервисное имя, отдельно согласованное со службой технической поддержки. |
output |
string |
Формат ответа на запрос. Подробнее
Если Если параметр не задан или имеет другое значение, будет применён формат по умолчанию: простой текст (text/plain), см. Ответ на запрос в текстовом формате. |
partnerMsgId |
string |
Уникальный идентификатор сообщения в системе Партнёра. ПодробнееКоличество символов: от одного до 50.
Данный параметр используется для контроля повторных отправок и дублирования.
Партнёр может отправить запрос на отправку сообщения с одним и тем же
При этом:
Сервис-провайдер опционально возвращает Партнёру данный идентификатор в рамках запроса на получение статуса доставки сообщения (см. Сервис получения статусов доставки). Использование данного параметра недоступно по умолчанию. Подключение данного функционала следует согласовать со своим курирующим менеджером. |
smsPriority |
integer |
Параметр указывает на приоритет сообщения. ПодробнееСообщения с более высоким приоритетом отправляются оператору в первую очередь. Возможные значения:
Использование данного параметра недоступно по умолчанию. Подключение данного функционала следует согласовать со своим курирующим менеджером. |
Ответ на запрос#
Примечание
Сервис-провайдер отправляет сообщения абонентам только при успешной обработке запроса.
Ответ на запрос в текстовом формате#
Ответ при успешной отправке запроса#
На успешный запрос Сервис-провайдер возвращает Партнёру:
HTTP-код
200
OK;идентификатор сообщения в системе Сервис-провайдера.
OK
4095284974
Ответный код |
Описание |
Возможные действия Партнера |
---|---|---|
200 |
Успешная обработка запроса.
В теле ответа передаётся идентификатор, присвоенный
сообщению Сервис-провайдером.
Идентификатор представляет собой 64-битное целое
положительное число.
|
Штатная работа с сервисом. |
Ошибки при отправке запроса#
При передаче ошибочного запроса в теле ответа может возвращаться короткое текстовое сообщение об ошибке.
Пример ответа в случае возникновения ошибки – неверного сочетания serviceId/pass
:
Invalid password
Код |
Описание |
Действие Партнера |
---|---|---|
400 |
Отсутствуют обязательные параметры или они заданы некорректно. Подробнее
Например, не передан параметр
|
Что делатьПовторить запрос с правильным сочетанием параметров и их корректными значениями. |
401 |
Передано неверное сочетание параметров |
Что делать
Повторить запрос с верными значениями
параметров |
402 |
Исчерпан остаток оплаченных сообщений (для Партнёров, работающих по предоплате). |
Что делатьДля возобновления отправки сообщений необходимо внести предоплату и обратиться к своему курирующему менеджеру. Повторять запрос Партнёру не следует. |
403 |
Сервис с переданным |
Что делатьСледует обратиться к своему курирующему менеджеру. Повторять запрос Партнёру не следует. |
406 |
Невозможно послать сообщение абоненту с переданным
|
Что делатьПовторять запрос Партнёру не следует. |
408 |
Превышение допустимой скорости отправки сообщений. ПодробнееДля сервиса Партнёра установлена допустимая скорость 10 запросов в секунду. Партнёр отправил 12 запросов в секунду.
Первые 10 запросов будут успешно обработаны:
в ответ на эти запросы Сервис-провайдер вернет
Партнёру статус
В ответ на последние два запроса
Сервис-провайдер вернет Партнёру статус
|
Что делатьПартнёр может повторить запрос, не превышая допустимой скорости. |
409 |
Запрещена отправка дубликатов. ПодробнееДля сервиса Партнёра включен функционал блокировки дубликатов. Партнёр отправил в течение суток три запроса для отправки сообщения на один номер с одинаковым текстом. Первый запрос будет успешно обработан, и сообщение будет отправлено абоненту.
В ответ на последние два запроса
Сервис-провайдер вернет Партнёру статус
Функционал блокировки дубликатов по умолчанию отключен для Партнёра. Функционал может быть включен по просьбе Партнёра. Также Сервис-провайдер может включить функционал блокировки дубликатов для Партнёра при необходимости. Например, в ответ на жалобы абонентов. |
Что делатьПовторять запрос Партнёру не следует. При необходимости отправки дубликата сообщения, Партнёр может обратиться в службу техподдержки Сервис-провайдера, предоставив наиболее полную информацию об условиях возникновения данной ситуации. |
414 |
Превышение допустимой длины текста сообщения,
переданного в параметре |
Что делатьПартнёр может повторить запрос, сократив текст сообщения до допустимой длины. |
500 |
Внутренняя ошибка сервера. Технические проблемы на стороне Сервис-провайдера. |
Что делать
При получении статуса
При получении статуса |
503 |
Запрос в обработке. Подробнее
Ошибка может возникнуть, если Партнёр
практически одновременно передает несколько
запросов с одним и тем же значением параметра
Пока не обработан первый запрос, на следующие
запросы с тем же |
Что делать
Партнёру следует выдержать паузу и подождать
ответ на первый запрос с переданным значением
параметра Партнёр может повторить запрос, если не получит ответ на первый запрос. |
Ответ в формате XML#
output=xml
.200
– запрос успешно обработан;500
– внутренняя ошибка сервера, технические проблемы на стороне Сервис-провайдера.
Примеры ответов#
Пример ответа в формате XML при успешной отправке запроса (HTTP-код 200
) .
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>200</code>
<text>OK</text>
<payload>
<id>4095284976</id>
</payload>
</response>
Пример ответа в формате XML при ошибочной отправке запроса: неверное сочетание serviceId/pass
.
<?xml version="1.0" encoding="utf-8"?>
<response>
<code>401</code>
<text>Invalid password</text>
</response>
При получении статуса 500
или при истечении тайм-аута ожидания ответа, Партнёр должен выдержать паузу минимум одну минуту. По истечении паузы Партнёр может повторить запрос.
Примечание
При получении статуса 500
более 10 раз необходимо прекратить передачу запроса. После чего передать в службу техподдержки Сервис-провайдера наиболее полную информацию об условиях возникновения данной ошибки для дальнейшего анализа.
В таблице обязательные параметры выделены полужирным шрифтом.
Наименование |
Описание |
Примечание |
---|---|---|
xml version |
Номер версии XML. |
Содержится в прологе XML-документа. |
encoding |
Кодировка. |
Содержится в прологе XML-документа. |
response |
Корневой элемент, содержит элементы
|
|
code |
Код ответа (значения соответствуют HTTP-кодам для ответов с типом text/plain). |
Подробнее см. в разделе Ответ на запрос в текстовом формате. |
text |
Дополнительная краткая текстовая информация об ответе. |
Может содержать информацию об ошибке. |
payload |
Информация о сообщении, содержит элемент |
Передаются только в случае успешного
выполнения запроса (при значении
|
id |
Идентификатор, присвоенный сообщению Сервис-провайдером. Идентификатор представляет собой 64-разрядное целое положительное число. |
Статусы доставки сообщений#
Для получения статусов сообщений необходимо настроить Сервис получения статусов доставки.
Важно
При отправке абоненту в мессенджер Telegram авторизационных кодов возможно получение только следующих статусов:
2
– доставлено;5
– не доставлено.
Каскадная отправка#
Каскадная рассылка сообщений по умолчанию недоступна. Для подключения и настройки Партнёру необходимо обратиться в службу технической поддержки Сервис-провайдера.
Для передачи сообщений в каскаде (Telegram
> SMS
) Партнёру достаточно будет отправить запрос
на отправку только первого сообщения каскада.
Далее каскад сработает автоматически на основе настроек.