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