Я хочу выяснить формат токенов бот-ботов для реализации некоторых проверок достоверности, но, похоже, официального описания формата нет.
Исходя из моего токена и того, что я нашел в сети, я могу предположить следующее:
- (до) 46 символов
- начинается с (до) 10 цифр, за которыми следует:
- остальные 35 символов относятся к классу [[: alnum:]] плюс — и _
Кто-нибудь может (не) подтвердить или указать на документацию?
Gnadelwartz 18 Май 2020 в 14:41
3 ответа
Узнайте, как aiogram проверяет бот-токен
Martin Winks 18 Май 2020 в 13:21
Позвольте мне обобщить то, что мы знаем на данный момент:
- чтобы убедиться, что токен API телеграммы имеет правильный формат и принят телеграммой, необходимо выполнить вызов API Telegram getMe , например, в командной строке: curl -s https://api.telegram.org/botYOURTOKEN/getMe
Тем не менее, у нас есть хорошие предположения о том, как должен выглядеть правильный токен:
- он состоит из 8-10 цифр, за которыми следует :
- : сопровождается 35-символьным внутренним идентификатором / хэшем Telegram
- идентификатор состоит из класса символов [[:alnum:]] плюс _- , это совпадение — символы, задокументированные для параметр глубокого связывания
- Формат токена: 8-10 digits:35 alnum characters plus _- , например 123456789:AaZz0. AaZz9
- Regex для тестирования: /^[0-9]:[a-zA-Z0-9_-]$/
Kay Marquardt 19 Май 2020 в 11:46
Если вы хотите проверить действительность токена бота, вы можете использовать метод getMe .
Get Telegram bot token
Простой метод для проверки токена авторизации вашего бота. Не требует никаких параметров. Возвращает основную информацию о боте в виде объекта User.
Любой неверный токен вернет ошибку 401.
Я считаю, что это был бы более надежный подход, чем проверка правильности форматов.
Источник: question-it.com
Отправка сообщений в Telegram при помощи Python
Представьте, что вы запустили какую-то программу, на выполнение которой требуется некоторое время, и хотите вздремнуть или что-то в этом роде. Вам нужен простой скрипт, который отправит вам сообщение, когда ваша программа закончит работу.
Реализовать функцию отправки сообщения в Telegram при помощи Python довольно просто. План действий:
- Создать Telegram-бота с помощью BotFather от Telegram
- Получить идентификатор чата
- Послать сообщение Telegram с помощью Python
Создание Telegram-бота
- Откройте приложение Telegram и найдите BotFather. Это встроенный бот Telegram, который помогает создавать пользовательские боты.
- Введите /newbot , чтобы создать нового бота.
- Дайте своему боту имя и уникальный username
- Скопируйте токен вашего нового бота Telegram
Примечание: не загружайте свой токен в интернет, так как любой пользователь с вашим токеном имеет полный контроль над вашим Telegram-ботом.
Получение идентификатора чата
В Telegram каждый чат имеет ID. Нам он нужен, чтобы отправлять в наш чат сообщения.
Отправьте своему Telegram-боту любое сообщение. После этого запустите скрипт Python, чтобы найти ID вашего чата:
import requests TOKEN = «Сюда вставьте свой токен» url = f»https://api.telegram.org/bot/getUpdates» print(requests.get(url).json())
Примечание редакции Pythonist: если у вас не установлена библиотека requests , нужно сперва ее установить:
$ python -m pip install requests
Этот скрипт вызывает функцию getUpdates , которая как бы проверяет наличие новых сообщений. Мы можем найти ID нашего чата из возвращаемого JSON (на иллюстрации выделен красным цветом).
Примечание: если вы не отправите сообщение своему Telegram-боту, результаты могут быть пустыми.
Найдя идентификатор чата, скопируйте его.
Отправка сообщения Telegram с помощью Python
Скопируйте и вставьте в следующий скрипт Python токен вашего Telegram-бота и ID чата из предыдущих двух шагов. Также напишите собственное сообщение.
import requests TOKEN = «Сюда вставьте свой токен» chat_id = «Сюда вставьте ID чата» message = «Здесь напишите свое сообщение» url = f»https://api.telegram.org/bot/sendMessage?chat_id= print(requests.get(url).json()) # Эта строка отсылает сообщение
Запустите скрипт и проверьте свой Telegram!
Источник: pythonist.ru
Питоном по телеграму! Пишем пять простых Telegram-ботов на Python
В этой статье мы реализуем простой, но крайне полезный проект на Python — бота для Telegram. Боты — это небольшие скрипты, которые могут взаимодействовать с API, чтобы получать сообщения от пользователя и отправлять информацию в разные чаты и каналы.
Python для новичков
Если ты совсем не ориентируешься в Python, то отличным началом будет прочтение трех вводных статей, которые я публиковал в «Хакере» этим летом, либо посещение курса «Python для новичков», который я начну вести для читателей «Хакера» уже совсем скоро — 30 ноября.
- Python с абсолютного нуля. Учимся кодить без скучных книжек
- Python с абсолютного нуля. Учимся работать со строками, файлами и интернетом
- Python с абсолютного нуля. Работаем с ОС, изучаем регулярные выражения и функции
Чтобы создать бота, нам нужно дать ему название, адрес и получить токен — строку, которая будет однозначно идентифицировать нашего бота для серверов Telegram. Зайдем в Telegram под своим аккаунтом и откроем «отца всех ботов», BotFather.
Жмем кнопку «Запустить» (или отправим / start ), в ответ BotFather пришлет нам список доступных команд:
- / newbot — создать нового бота;
- / mybots — редактировать ваших ботов;
- / setname — сменить имя бота;
- / setdescription — изменить описание бота;
- / setabouttext — изменить информацию о боте;
- / setuserpic — изменить фото аватарки бота;
- / setcommands — изменить список команд бота;
- / deletebot — удалить бота.
Отправим бате‑боту команду / newbot , чтобы создать нового бота. В ответ он попросит ввести имя будущего бота, его можно писать на русском. После ввода имени нужно будет отправить адрес бота, причем он должен заканчиваться на слово bot. Например, xakepbot или xakep_bot . Если адрес будет уже кем‑то занят, BotFather начнет извиняться и просить придумать что‑нибудь другое.
Когда мы наконец найдем свободный и красивый адрес для нашего бота, в ответ получим сообщение, в котором после фразы Use this token to access the HTTP API будет написана строка из букв и цифр — это и есть необходимый нам токен. Сохраним ее где‑нибудь на своем компьютере, чтобы потом использовать в скрипте бота.
Для взаимодействия с Telegram API есть несколько готовых модулей. Самый простой из них — Telebot. Чтобы установить его, набери
pip install pytelegrambotapi
В Linux, возможно, понадобится написать pip3 вместо pip , чтобы указать, что мы хотим работать с третьей версией Python.
Эхо-бот
Для начала реализуем так называемого эхо‑бота. Он будет получать от пользователя текстовое сообщение и возвращать его.
Источник: xakep.ru