October 5, 2024
API Gateway: Что это и как пользоваться?
Автор: @RDGlessons
Сегодня Telegram выпустил обновление Telegram API — Gateway API. Оно представлено как инструмент, способный заменить СМС-верификации. В этой статье мы расскажем о преимуществах, разберём, как пользоваться, и реализуем интеграцию.
Основные особенности:
- Мгновенная доставка кодов верификации.
- Цена в ~$0.01 за сообщение, что в ~50 раз ниже средней цены за СМС*
- 100% процентная доставка сообщения.
- Отчёты о прочтении и доставке
Но есть и большой минус: минимальная сумма пополнения составляет $100, причём оплата возможна только в TON.
*В целях тестирования вы сможете отправлять бесплатные проверочные сообщения на аккаунт Telegram, привязанный к номеру, который вы использовали для входа.
Инструкция по настройке:
Авторизация:
Для начала необходимо получить уникальный API токен, для отправки кодов верификации. Перейдите в Gateway account, авторизуйтесь по номеру Telegram и скопируйте API токен:
Отправка кодов через PuzzleBot:
Создайте Интегрированную переменную во вкладке Переменные в PuzzleBot
Заполните поле "Ссылка" данной ссылкой:https://gatewayapi.telegram.org/sendVerificationMessage
- phone_number - обязательно - номер телефона получателя кода в международном формате E. 164
- code - необязательно - код, который будет отправлен получателю. Код может состоять только от 4 до 8 цифр.
- code_length - необязательно (используется только если отсутствует поле code) - длина кода, который будет сгенерирован Telegram, от 4 до 8 символов.
- sender_username - необязательно - юзернейм публичного канала, от чьего имени придёт код получателю. Канал который вы укажите должен принадлежать вашему аккаунту.
- ttl - необязательно - количество секунд, после которых код будет удалён/деактивирован. Код удаляется только если сообщение с кодом не прочитано на момент удаления.
- callback_url - необязательно - адрес вебхука, который получит обновления сообщения: статус доставки и прочтение.
- request_id - необязательно - айди предыдущего сообщения, отправленного на этот же номер. Если всё указано верно - деньги с баланса за отправленное сообщение считываться не будут.
JSON:
[
{
"ok": true,
"result": {
"request_id": "1234567890",
"phone_number": "1234567890",
"request_cost": 0,
"remaining_balance": 0,
"delivery_status": {
"status": "sent",
"updated_at": 123456789
}
}
}
]Подробнее с документацией можно ознакомиться здесь.