taomao
@taomao
Инженер технической поддержки

Почему телеграм бот на python2.7 работает на 3.4 нет?

Написал элементарного бота на python, код работает если запускать на 2.7 с предупреждениями об SSL, на py3 код не работает, он запускается, но команды не принимает. Может как то с блокировками связано? Как можно запустить?
from telegram.ext import Updater, CommandHandler

def start_bot(bot, update):
    mytext = """Hello world /start
    """ 
    update.message.reply_text(mytext)
    print("start")

def main():
    updtr = Updater('MY_TOKEN')

    updtr.dispatcher.add_handler(CommandHandler("start", start_bot))
    updtr.start_polling()
    updtr.idle()

if __name__ == "__main__":
    main()
  • Вопрос задан
  • 226 просмотров
Пригласить эксперта
Ответы на вопрос 1
SimonOsipov
@SimonOsipov
Через баги к коммиту!
Сложно так сказать, попробуйте сделать логгирование (вставьте код до def main:

import logging

logging.basicConfig(
	handlers=[
		logging.FileHandler(
			'bot.log',
			'w',
			'utf-8'
		)
	],
	format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
	level=logging.DEBUG,
)


Запустите бот, отправьте комманду /start, выключите бота и посмотрите в bot.log

Вас должно интересовать обращение к API:
DEBUG - https://api.telegram.org:443 "POST /bot590986898:AAHD96EvOQ5x-QUeazYZh-HkR-Sg0m0Prf8/getUpdates HTTP/1.1" 200 23


Очень даже может быть, что у бота не получается обратиться к API, именно из-за блокировок. В логгировании это будет видно.

Более быстрый вариант: включите VPN и повторите.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы