Как запустить бота Telegram у себя на компьютере? Как установить библиотеки?
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
import logging
может нужно будет)
UPD: я пробовал устанавливать pip instal python дальше создавал start.bat со следующей информацией:
@echo off
python bot.py
pause
но почему то не работает *(
Суть: При нажатии кнопки /start пользователю будет предложено подписаться на канал @segs. При нажатии кнопки /check будет проверена подписка на канал и в зависимости от результата будет отправлено соответствующее сообщение. Если проверка пройдена успешно, пользователю будет предложено ввести число больше 7400000. При нажатии кнопки /get будет проверено введенное число и отправлено соответствующее сообщение. Если число больше 7400000, пользователю будет предложено нажать кнопку /finish для завершения
Код:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
def start(update, context):
keyboard = [[InlineKeyboardButton("Подписаться на канал", url="https://t.me/segs")]]
reply_markup = InlineKeyboardMarkup(keyboard)
context.bot.send_message(chat_id=update.effective_chat.id, text="Добро пожаловать! Пожалуйста, подпишитесь на канал @segs.", reply_markup=reply_markup)
def check(update, context):
user_id = update.effective_user.id
subscribed = context.bot.get_chat_member("@segs", user_id).status == "member"
if subscribed:
keyboard = [[InlineKeyboardButton("Получить", callback_data="get")]]
reply_markup = InlineKeyboardMarkup(keyboard)
context.bot.send_message(chat_id=update.effective_chat.id, text="Проверка прошла успешно! Введите число больше 7400000.", reply_markup=reply_markup)
else:
context.bot.send_message(chat_id=update.effective_chat.id, text="Вы не подписаны на канал @segs. Пожалуйста, подпишитесь и повторите проверку.")
def get(update, context):
query = update.callback_query
number = int(query.message.text.split()[-1])
if number > 7400000:
keyboard = [[InlineKeyboardButton("Завершить", callback_data="finish")]]
reply_markup = InlineKeyboardMarkup(keyboard)
context.bot.send_message(chat_id=query.message.chat_id, text="Успешно!", reply_markup=reply_markup)
else:
context.bot.send_message(chat_id=query.message.chat_id, text="Число должно быть больше 7400000.")
def finish(update, context):
query = update.callback_query
context.bot.send_message(chat_id=query.message.chat_id, text="Спасибо за использование бота!")
def main():
updater = Updater("ЗДЕСЬ ДОЛЖЕН БЫТЬ МОЙ ТОКЕ !!!!!!!!!!!!!", use_context=True)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("check", check))
dp.add_handler(CommandHandler("get", get))
dp.add_handler(CommandHandler("finish", finish))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
Ответы (1 шт):
Если у Вас в папке с проектом есть отдельное виртуальное окружение (папка .venv обычно), то попробуйте указать точное местоположение интерпретатора в .bat файле:
Пример рабочего варианта:
@echo off
D:\PyProjects\Bot_name\.venv\Scripts\python.exe D:\PyProjects\Bot_name\bot.py %*
pause
Скорее всего, Вы все библиотеку устанавливали именно в виртуальное окружение проекта, а не корневое (всего пк), что правильно. Но при этом запуск производите через корневое.
Также проверьте, ту ли библиотеку Вы используете и, возможно Вам нужен telebot или aiogram.
Проверьте также работу бота на минимально рабочем коде, буквально /start
и отправить простое сообщение пользователю или в консоль, без лишних импортов. Если не работает и так, то, вероятнее всего, проблема не в коде, а в зависимостях, библиотеке или интерпретаторе.