postech
@postech
программист

Работает ли Pyrogram, если api_id типа string?

Столкнулся с такой ошибкой при запуске клиента Pyrogram:

Traceback (most recent call last):
    File "bot.py", line 6, in <module>
        app = Client(
          File "/path/env/lib/python3.8/site-packages/pyrogram/client.py", line 233, in init
          self.api_id = int(api_id) if api_id else None
          ValueError: invalid literal for int() with base 10: 'qN-agvCCaH4'


В документации к актуальной версии Pyrogram указано, что api_id может быть типа int | str (равно как и в доках Telegram), однако ошибка (и строка кода, ее вызвавшая) явно указывает на обратное.

По стечению обстоятельств, пользователя изменить нельзя (у которого api_id типа str), и api_id, как я понимаю, тоже.

Как быть? Переписывать весь код на другой движок под Telegram или что-то можно сделать?

upd: Действительно, api_id не может содержать символы - только цифры. Мне его передали, поэтому и получился такой "сломанный телефон".
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
В pyrogram app_id может быть строкой только в случае, если строка представляет из себя число.
Во-первых: Попробуй не передавать app_id вообще - он опционален

Во-вторых: app_id не может выглядеть так, как ты показываешь. app_id - это левая часть токена до двоеточия.
Например вот что мне сообщает botfather, когда я у него прошу токен:

Here is the token for bot (имя бота) @(юзернейм бота):
(цифры, которые не меняются после отзыва токена):(буквоцифры, а ещё иногда дефисы и нижние чёрточки. Рандомные символы короче)

Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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