Задать вопрос
@fhehq

Как пофиксить эти ошибки?

Ошибки:
Traceback (most recent call last):
File "", line 186, in addpackage
File "", line 1, in
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\_virtualenv.py", line 55, in
bot.polling(none_stop=True)
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\__init__.py", line 1042, in polling
logger.info('Starting your bot with username: [@%s]', self.user.username)
^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\__init__.py", line 275, in user
self._user = self.get_me()
^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\__init__.py", line 1228, in get_me
result = apihelper.get_me(self.token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\apihelper.py", line 198, in get_me
return _make_request(token, method_url)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\apihelper.py", line 164, in _make_request
json_result = _check_result(method_name, result)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\artem\PycharmProjects\Telegram-bot\.venv\Lib\site-packages\telebot\apihelper.py", line 191, in _check_result
raise ApiTelegramException(method_name, result, result_json)
telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 401. Description: Unauthorized

Remainder of file ignored

код:
import re
from typing import Any

import telebot
from telebot import types

bot = telebot.TeleBot('XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')

yan = 0  # Курс юаня


@bot.message_handler(regexp=r'^/RateEdit_Admin<code lang="python">
</code> [\d.]+$')
def handle_change_admin(message):
    global yan
    new_yan = re.search(r'[\d.]+', message.text).group(0)
    yan = float(new_yan)
    bot.reply_to(message, f'Курс был изменен')


# Команда для проверки курса
@bot.message_handler(commands=["rate"])
def main(message):
    bot.send_message(message.chat.id, f'Курс Юаня - {yan} ')


# Команда для связи с поддержкой
@bot.message_handler(commands=["contacts"])
def main(message):
    bot.send_message(message.chat.id,
                     'По вопросам доставки, товара писать - xxx \n По вопросам бота писать - xxx')


# Команда для расчета стоимости
@bot.message_handler(commands=["calculator"])
def main(message):
    bot.send_message(message.chat.id, 'Введите сумму товара в Юанях')


# Команда для старта бота
@bot.message_handler(commands=["start"])
def main(message):
    markup = types.InlineKeyboardMarkup()
    btn3 = types.InlineKeyboardButton('Курс', callback_data='rate1')
    btn4 = types.InlineKeyboardButton('Калькулятор', callback_data='calculator1')
    btn5 = types.InlineKeyboardButton('Контакты', callback_data='contacts1')

    markup.row(btn4, btn3)
    markup.add(btn5)
    bot.send_message(message.chat.id,
                     f'Здравствйте, {message.from_user.first_name}, мы рады вас видеть вас в нашем чат-боте.\n● Для рассчета стоимости товара, нажмите на кнопку - Калькулятор \n● Для того чтобы связаться с оператором, нажмите -  Контакты \n● Для того чтобы узнать курс юаня, нажмите - Курс',
                     reply_markup=markup)


# Кнопки выбора типа товара
@bot.callback_query_handler(func=lambda call: True)
def callback(call):
    if call.message:
        if call.data == 'rate1':
            bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id, text=f'Курс Юаня - {yan} ')
        elif call.data == 'contacts1':
            bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id,
                                  text='По вопросам доставки, товара писать - xxx \n По вопросам бота писать - xxx)

        elif call.data == 'calculator1':
            bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.id,
                                  text='Выберите тип вашего товара',
                                  reply_markup=types.InlineKeyboardMarkup().add(
                                      types.InlineKeyboardButton(text='Обувь', callback_data='shoes'),
                                      types.InlineKeyboardButton(text='Аксессуары', callback_data='accessories'),
                                      types.InlineKeyboardButton(text='Одежда', callback_data='clothing')
                                  ))

@bot.message_handler(func=lambda message: True)
def handle_accessories_price(message):
    try:
        amount = float(message.text)

        total_cost = calculate_total_cost_based_on_amount(amount)

        bot.send_message(chat_id=message.chat.id,
                         text=f'Итоговая стоимость аксессуаров с учетом доставки и комиссии: {total_cost}')

    except ValueError:
        bot.send_message(chat_id=message.chat.id, text='Пожалуйста, введите корректную сумму.')


def calculate_total_cost_based_on_amount(amount, delivery_cost_percentage=None, commission_percentage=None):
    total_cost: int | Any = amount * (1 + delivery_cost_percentage + commission_percentage)
    return total_cost


@bot.message_handler(func=lambda message: True)
def calculator_total(message):
    try:
        cost = float(message.text)
        commission = 1100
        delivery_cost = 0
        if message.text.startswith('/air'):
            delivery_cost = 150 * yan
        elif message.text.startswith('/car'):
            delivery_cost = 50 * yan

        total_cost1 = cost * yan + 150 * yan + commission
        total_cost2 = cost * yan + 50 * yan + commission
        bot.send_message(message.chat.id,
                         f'Экспресс доставка\nСумма вашего товара: {cost * yan} рублей\nСумма доставки: {150 * yan} '
                         f'рублей\nКоммиссия: {commission}рублей\nИтого: {total_cost1}'
                         f' рублей\n══════════════════\nОбычная доставка\nСумма вашего товара : {cost * yan}'
                         f' рублей\nСумма доставки: {50 * yan} рублей\nКоммиссия: {1100}рублей\nИтого: {total_cost2} рублей\n \nДля '
                         f'оплаты и оформления заказа напишите сюда - xxx ')
    except ValueError:
        bot.send_message(message.chat.id,
                         'К сожалению я не умею читать текст(')


bot.polling(none_stop=True)
  • Вопрос задан
  • 326 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
febday
@febday
Токен верный вставь. В ошибке же написано, что ты не авторизован
Ответ написан
Ваш ответ на вопрос

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

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