October 5
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 } } } ]
Подробнее с документацией можно ознакомиться здесь.