Найти тему

Телеграм бот на Python3.

Изи пример бота.

Через BotFather создаём бота в телеграм - ссылка как создать.

По желанию выставите все нужные параметры для бота, такие как:

  • Имя
  • Описание
  • Инфо о боте
  • Аватар

И тд. и тп. Описание команд как это делать - ссылка.

Используйте среду разработки python или любой удобный текстовый редактор с поддержкой плагинов для Python, например, Sublime Text 3, Atom и др.
Или же проще всего запустите
Jupyter Notebook - что это и как установить?

Если ЯП Python3 не установлен - тут можно узнать как это сделать.

Для создания бота, буду использовать библиотеку telebot.
Установка - pip install pytelegrambotapi (что такое pip?).
Ещё установите такую библиотеку -
pip install telebot

Заметка: некоторые провайдеры ставят блокировку на всё что будет связано с подключением с телеграм. Из-за этого бот не будет работать. Обойти это можно через VPN. Простой и рабочий способ, уставите на компьютер программу Hotspot Shield - ссылка с описанием программы.

Код для запуска и управления ботом:

import telebot
from telebot import types

TOKEN = 'ваш токен'
bot = telebot.TeleBot(TOKEN) # создание объекта bot, это и есть телеграм бот c токеном внутри
							 # TOKEN - Токен бота который создали через BotFather
							 # формат токена обычно такой ххххххххх(цифры):nnnnnnn(n-ое количество символов)


# функция с декоратором обработчика команды /start -command=['start']
# при введение /start в чате бота  - обработчик ловит это сообщение,
# распознаёт что оно соответствует именно start и далее переходит к функции start_command
@bot.message_handler(commands=['start'])
def start_command(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False) # обращение к методу по созданию интерфейса клавиатуры 
    support = types.KeyboardButton('Справка') # обращение к методу по созданию кнопки
    markup.add(support) # за счёт объекта markup добавляет объект support в интерфейс телеграм-бота как обычную кнопку с названием Справка
    bot.send_message(message.chat.id, 'Привет!\nУзнать больше о боте введи любую из команд /help,/помощь.\nИли нажми кнопку Справка', reply_markup=markup)

# command=['start'] можно заложить всё что угодно,
# например поможем вновь пришедшим пользователем
# создадим команды /help, или даже так /помощь
@bot.message_handler(commands=['help'])
@bot.message_handler(commands=['помощь'])
def start_command(message):
    bot.send_message(message.chat.id, '{}:\n{}\n{}'.format(message.text.upper(), 'Сорян, помогать пока не с чем, потому что бот пустой ничего тут нет :(',
    																			 'Но можно всё исправить, если поколдовать с кодом и добавить годный контент ;)'))
# regexp тоже обработчик сообщений, но в данном случае ему не нужен слэш
# он обрабатывает сообщения который прямо соответствуют его тексту
# обычно необходимо для взаимодействия с кнопками
@bot.message_handler(regexp='Справка')
def support(message):
    keyboard = telebot.types.InlineKeyboardMarkup() # объект инлайн клавиатуры
    keyboard.add(telebot.types.InlineKeyboardButton('Сообщение разработчику', callback_data='msg-{}'.format(message.text), url='t.me/BotFather')) # добавление кнопки в инлайн клавиатуру
    bot.send_message(message.chat.id, 'Обратная связь', reply_markup=keyboard) # вывод на экран клавиатуры

# callback обработчик нужен для взаимодействия с кнопками инлайн клавиатуры
# эти кнопки более функциональны чем обычные
@bot.callback_query_handler(func=lambda call: True)
def msg_callback(query):
    data = query.data
    if data.startswith('msg-'):
        try:
            bot.send_chat_action(query.message.chat.id, 'typing')
            bot.send_message(query.message.chat.id, reply_markup='функция которая будет выполняться если нажать на инлайн кнопку')
        except:
            pass

if __name__ == '__main__':
    bot.polling(none_stop=True) # запуск бота
import telebot from telebot import types TOKEN = 'ваш токен' bot = telebot.TeleBot(TOKEN) # создание объекта bot, это и есть телеграм бот c токеном внутри # TOKEN - Токен бота который создали через BotFather # формат токена обычно такой ххххххххх(цифры):nnnnnnn(n-ое количество символов) # функция с декоратором обработчика команды /start -command=['start'] # при введение /start в чате бота - обработчик ловит это сообщение, # распознаёт что оно соответствует именно start и далее переходит к функции start_command @bot.message_handler(commands=['start']) def start_command(message): markup = types.ReplyKeyboardMarkup(resize_keyboard=True, one_time_keyboard=False) # обращение к методу по созданию интерфейса клавиатуры support = types.KeyboardButton('Справка') # обращение к методу по созданию кнопки markup.add(support) # за счёт объекта markup добавляет объект support в интерфейс телеграм-бота как обычную кнопку с названием Справка bot.send_message(message.chat.id, 'Привет!\nУзнать больше о боте введи любую из команд /help,/помощь.\nИли нажми кнопку Справка', reply_markup=markup) # command=['start'] можно заложить всё что угодно, # например поможем вновь пришедшим пользователем # создадим команды /help, или даже так /помощь @bot.message_handler(commands=['help']) @bot.message_handler(commands=['помощь']) def start_command(message): bot.send_message(message.chat.id, '{}:\n{}\n{}'.format(message.text.upper(), 'Сорян, помогать пока не с чем, потому что бот пустой ничего тут нет :(', 'Но можно всё исправить, если поколдовать с кодом и добавить годный контент ;)')) # regexp тоже обработчик сообщений, но в данном случае ему не нужен слэш # он обрабатывает сообщения который прямо соответствуют его тексту # обычно необходимо для взаимодействия с кнопками @bot.message_handler(regexp='Справка') def support(message): keyboard = telebot.types.InlineKeyboardMarkup() # объект инлайн клавиатуры keyboard.add(telebot.types.InlineKeyboardButton('Сообщение разработчику', callback_data='msg-{}'.format(message.text), url='t.me/BotFather')) # добавление кнопки в инлайн клавиатуру bot.send_message(message.chat.id, 'Обратная связь', reply_markup=keyboard) # вывод на экран клавиатуры # callback обработчик нужен для взаимодействия с кнопками инлайн клавиатуры # эти кнопки более функциональны чем обычные @bot.callback_query_handler(func=lambda call: True) def msg_callback(query): data = query.data if data.startswith('msg-'): try: bot.send_chat_action(query.message.chat.id, 'typing') bot.send_message(query.message.chat.id, reply_markup='функция которая будет выполняться если нажать на инлайн кнопку') except: pass if __name__ == '__main__': bot.polling(none_stop=True) # запуск бота

Код на картинке в тестовом формате под картинкой, как комментарий к изображению.

-2

На этой всё)) если всё получилось по-экспериментируйте с данным примером, добавляйте новые функции, обработчики и тд.
Если вам понравилось, ставьте лайк и подписывайтесь на канал. Возникли вопросы или пожелания, пишите комментарии ;)
На канала ещё будут примеры телеграм ботов.