Кстати, лучше токен и другие важные константы в другом файле держать и импортировать его отдельно. Тогда не придется его вымарывать и т.п. В идеале вообще его вне кода держать, но это отдельный вопрос.
d1n0z4ur, вообще работает. С любым кодом. Вот насколько правильно ваш код с ними работает. Возможны нюансы. Но в названии вашего вопроса другое. На него и отвечаю.
В третьих, надо понять, с какой целью код вы пытаетесь заключить в класс. Класс обычно соответствует какому-то множеству однотипных объектов: пользователей, Документов, адресов, что-то в таком духе. Например, класс пользователей вашего бота, класс подписчиков вашего бота, класс ролей, класс групп, класс ботов. Каждый класс содержит в себе атрибуты, которые описывают текущее состояние каждого экземпляра класса, и методы, которыми можно поменять это состояние.
И в четвёртых, всё это делается по определённым правилам. Прежде чем начинать делать, надо изучить правила работы с классами. Иначе вы будете пытаться пилой рубить дрова, а топором пилить бревна. И всякий раз будете прибегать сюда и спрашивать: «почему пила не рубит? Почему топор не пилит?»
Во-первых, надо приводить тут код, который возвращает ошибку.
Во-вторых, надо приводить собственно ошибку, полностью, при этом оборачивать её тегом code и, если длинная, прятать под спойлер.
Вам надо разобраться в объектной модели python, а также в работе с классами и экземплярами. Иначе вам удачи не видать. Будете тыкаться в изумлении «какая разница, писать bot или Bot».
В общем, рано вам в боты, верно отмечено.
eg0rius31, рекомендую использовать дебаггер, проходите по шагам выполнение и смотрите, что в ваших переменных на шагах программы.
В pycharm он встроен.