Створюємо Telegram бота на Python. Частина 1

4 хв. читання

Привіт, codeguida, це стаття про створення ботів для **Telegram **на мові **Python **з використання бібліотеки pyTelegarmBotAPI. Тож почнемо.

Створюємо Telegram бота на Python - це серія статей, де я спробую описати створення бота для Telegram. Це перша з них, в ній я розкажу що собою являє бот Telegram і ви створите свого, найпростішого бота.

24 червня 2015 року розробники Telegram відкрили платформу для створення ботів. Telegram бот- це профіль Telegram, який автоматично опрацьовує повідомлення і виконує певні дії. Наприклад weatherman_bot пише вам погоду для вашого міста кожен день в 7:00 (можна встановити самому). Так ви будете знати погоду перед тим, як іти на роботу, чи навчання.

Для створення ботів я буду використовувати мову Python, тому що вона мені дуже подобається і я її знаю. Але підійде будь-яка мова, яка вміє працювати з API. Найчастіше Telegram ботів пишуть на Python, далі на JavaScript, PHP, Java (статистика з GitHub). Для ботів існує багато бібліотек, я буду використовувати pyTelegramBotAPI, вона open source і ввесь код є на GitHub. Почнемо кодити!

Для початку створимо вашого майбутнього бота у BotFather. Щоб це зробити треба зайти в телеграм і написати боту **BotFather **(це бот, який створює ботів).

  • Зайдіть на BotFather, і додайте цього бота.
  • Напишіть /newbot
  • Після він спитає ім'я для вашого майбутнього бота (не нік)
  • Зараз потрібно вказати нік бота, він повинен закінчуватись на "bot"
  • Якщо нік не зайнятий, то BotFather напише вам повідомлення подібного змісту:
Done! Congratulations on your new bot. You will find it at telegram.me/my_bot_for_article_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands.

Use this token to access the HTTP API:
199126628:AAEm19ypb2vqJH2vspGGsvKyzYA__T2MfbY

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

Тут вам потрібен лише токен, в моєму випадку це - "199126628:AAEm19ypb2vqJH2vspGGsvKyzYA__T2MfbY" можете навіть не перевіряти, цей токен не активний Чат з BotFather

А зараз, коли ви вже створили бота, давайте встановимо бібліотеку для роботи з ботом: Windows

pip install pytelegrambotapi

Linux i OS X

sudo pip install pytelegrambotapi

В нас буде 2 файла:

  • main.py - ввесь код
  • config.py - важливі константи

Файл config.py буде такого змісту:

#coding:utf-8

TOKEN = "<token>"

Де - це токен, який вам видав BotFather. Файл main.py, як я вже писав, буде в собі мати ввесь код, тож почнемо його наповнювати. Першими ділом вкажемо кодування, імпортуємо бібліотеку pytelegrambotapi, файл config.py і створимо об'єкт класу TeleBot:

#coding:utf-8
import telebot, config

bot = telebot.TeleBot(config.TOKEN)

Кожен бот повинен мати такі базові команди:

  • /start - початок роботи, ця команда виконується, коли ви вперше напишете боту
  • /help - показує всі доступні команди *ще є /setting (налаштування), але вона не так часто використовується

Щоб змусити Python обробляти команди використовується декоратор @message_handler(commands=["command"]), де аргумент commands приймає масив з списком команд. Щоб надсилати повідомлення в **pytelegrambotapi **є функція send_message(), яка приймає мінімум 2 аргумента: id користувача і повідомлення, яке потрібно надіслати. Подивитись id користувача, який надіслав повідомлення боту можна в message.chat.id, де message це- аргумент, який приймає функція декоратора. Складно? Давайте подивимось, як це працює на прикладі:

@bot.message_handler(commands=["start"])
def start(message):
	bot.send_message(message.chat.id, "Привіт, я Telegram бот")

Щоб запустити бота використаємо функцію polling():

if __name__ == "__main__":
	bot.polling()

Тепер запустіть main.py і напишіть вашому боту /start. Якщо він вам відповів, то я вас вітаю, ви створили свого першого бота. Якщо ж ні, то перевірте чи ви не допустили синтаксичних помилок, а якщо впевнені що ні, то напишіть коментар нижче і опишіть свою проблему.

Бот працює, але щоб він відповідав базовим вимогам Telegram треба ще додати команду /help:

@bot.message_handler(commands=["help"])
def start(message):
	bot.send_message(message.chat.id, "/start - початок використання\
/help - допомога")

От і все на сьогодні, дякую за увагу, сподіваюсь у вас все вийшло у наступній статті я розкажу як додати більший функціонал до вашого бота. Переглянути ввесь код ви можете на GitHub.

P.S. Вступайте в груповий чат в Telegram, де українською ми обговорюємо все про IT. Натисніть, щоб вступити.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 6.2K
Приєднався: 7 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація