Как писать телеграм ботов на питоне

Начинающий
Статус
Оффлайн
Регистрация
12 Июл 2017
Сообщения
140
Реакции[?]
25
Поинты[?]
0
Всем привет и сегодня я расскажу вам, как легко писать ботов для телеги на питоне.

Для начала нам нужно базовое знание питона, можно посмотреть вот это видео:
Затем скачиваем питон версии 3.x
Пожалуйста, авторизуйтесь для просмотра ссылки.

Так же нам понадобится командная строка и любой текстовый редактор и сам телеграм.
Для начала создадим нового бота, для этого пишем ему
Пожалуйста, авторизуйтесь для просмотра ссылки.
и дальше по инструкции. Если нужно подробнее описать этот шаг - пишите.

Использовать мы будем вот эту библиотеку
Пожалуйста, авторизуйтесь для просмотра ссылки.

Вначале установим библиотеку. Напишем в командной строке:
Код:
pip install pytelegrambotapi
Затем создаем новый файл .py, я создал main.py.

Вначале вставляем нашу библиотеку:
Код:
import telebot
Затем создаем новый обьект:
Код:
bot = telebot.TeleBot("TOKEN")
- токен вам передал botfather, вставляем его вместо "TOKEN".
Теперь мы должны добавить листенер, он будет ждать пока человек напишет что нибудь подходящеее под описание и тогда выполнит какое-то действие.
Код:
@bot.message_handler(commands=['start'])
def welcome(message):
    bot.send_message(message.chat.id, "Welcome")
Только что мы сделали листенер, который ждет пока нам напишут "/start" (команды всегда начинаются с "/"). Если нам написали эту команду, то срабатывает функция welcome, параметром этой функции является message - сообщение, которое нам написали, внутри функции мы выполняем bot.send-message, message.chat.id - это чат айди, он разный с каждым пользователем, то есть мы пишем туда же, откуда пришло сообщение, и текст этого сообщения "Welcome".

Вот пример бота, который возвращает тоже самое, что написал человек:
Код:
@bot.message_handler(content_types=["text"])
def repeat_all_messages(message): # Название функции не играет никакой роли, в принципе
    bot.send_message(message.chat.id, message.text)
if __name__ == "__main__':
    bot.polling(none_stop=True)
Тут мы ставим листенер на любые сообщения с текстом, и возвращаем в тот же чат айди тот же текст.
Код:
if __name__ == "__main__"
- всегда возвращает True
Код:
bot.polling(none_stop=True)
- запускает бесконечный цикл, то есть эта программа будет работать в командной строке, пока вы ее не прервете (ctrl + c). Естественно боты должны быть запущены на серверах.

Всем спасибо за внимание, если что-то непонятно, то пишите, ставьте симпу, если это вам помогло и вы узнали что-то новое. Изучайте документацию этой библиотеки, у нее много других листенеров.
 
Сверху Снизу