Боты Telegram теперь готовы.
Если мы используем аналогию с веб-браузером и веб-сайтами, клиентские приложения телеграммы похожи на клиенты браузера.
Частные комнаты Telegram похожи на веб-сайты.
Предположим, что у нас есть некоторая информация, которую мы хотим ограничить для определенных пользователей, на веб-сайтах у нас будет аутентификация.
Как мы достигаем такого же эффекта для ботов Telegram?
Мне сказали, что я могу использовать глубокую ссылку. См. Описание здесь
Я воспроизведу его ниже:
- Создайте бот с подходящим именем пользователя, например. @ExampleComBot
- Настройка веб-узла для входящих сообщений
- Генерировать случайную строку достаточной длины, например. $memcache_key = "vCH1vGWJxfSeofSAs0K5PA"
- Поместите значение 123 с ключом $memcache_key в Memcache за 3600 секунд (один час)
- Покажите нашим пользователям кнопку https://telegram.me/ExampleComBot?start=vCH1vGWJxfSeofSAs0K5PA
- Настройте процессор webhook для запроса Memcached с параметром, который передается входящими сообщениями, начинающимися с /start. Если ключ существует, запишите chat_id, переданный в webhook, как telegram_chat_id для пользователя 123. Удалите ключ из Memcache.
- Теперь, когда мы хотим отправить уведомление пользователю 123, проверьте, есть ли у них поле telegram_chat_id. Если да, используйте sendMessage метод в API бота, чтобы отправить им сообщение в Telegram.
Я знаю, как сделать шаг 1.
Я хочу понять все остальное.
Это изображение, которое я имею в виду, когда пытаюсь расшифровать шаг 2.
Таким образом, различные клиенты телеграммы взаимодействуют с сервером Telegram при разговоре с ExampleBot в своих приложениях. Сообщение является двусторонним.
Шаг 2 предполагает, что сервер Telegram обновит сервер ExampleBot через webhook. Веб-сайт - это всего лишь URL-адрес.
До сих пор я прав?
Какой следующий шаг к использованию этого для аутентификации?