es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo resolver el error de “token inválido de Telegram” debido a un carácter de nueva línea adicional?

Tengo un proyecto con python-telegram-bot donde me encuentro con un error. Mi entorno de desarrollo es centos7 y python3.6.8.

El código donde ocurren los errores es el siguiente:

import telegram
from telegram.ext import Updater
from telegram.ext import CommandHandler
from telegram.ext import MessageHandler, Filters
from main import *

with open(r"/home/inseo/바탕화면/weather_report/telegram_key.txt","r") as file:
    token = file.readline()

wp = Weather_Report()

updater = Updater(token=token, use_context=True)
dispatcher = updater.dispatcher

El archivo telegramapi.txt_ contiene la clave de API que me dieron los telegram_chatbot. Este código se ejecuta normalmente en Windows 10, pero cuando intento ejecutarlo en Linux (centos7), ocurren errores como los siguientes:

[root@localhost weather_report]# python3 message.py
Traceback (most recent call last):
    File "message.py", line 13, in <module>
        updater = Updater(token=token, use_context=True)
    File "/root/.local/lib/python3.6/site-packages/telegram/ext/updater.py", line 290, in __init__
        else arbitrary_callback_data
    File "/root/.local/lib/python3.6/site-packages/telegram/ext/extbot.py", line 103, in __init__
        private_key_password=private_key_password,
    File "/root/.local/lib/python3.6/site-packages/telegram/bot.py", line 191, in __init__
        self.token = self._validate_token(token)
    File "/root/.local/lib/python3.6/site-packages/telegram/bot.py", line 347, in _validate_token
        raise InvalidToken()
telegram.error.InvalidToken: Invalid token

He comprobado que la clave de API es correcta, pero no funciona bien. ¿Cómo puedo solucionar este problema?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el error está causado por un token inválido, lo cual podría ser debido a un problema en cómo se lee el token desde el archivo. Aquí tienes algunas posibles soluciones que puedes probar:

    • Verifica que la clave de API en el archivo sea correcta y coincida con la que te proporcionó Telegram. Es posible que haya habido un error al copiar y pegar o algún otro error.
    • Intenta imprimir el valor de token para asegurarte de que se está leyendo correctamente desde el archivo. Por ejemplo, agrega print(token) justo después de la declaración with open.
    • Verifica que la ruta del archivo telegram_key.txt sea correcta y que el archivo exista en esa ubicación.
    • Asegúrate de que se esté leyendo correctamente el archivo en CentOS. Es posible que haya alguna diferencia en cómo se manejan las rutas de archivos entre Windows y CentOS.
    • Asegúrate de que el archivo tenga los permisos de lectura apropiados para el usuario que está ejecutando el script en CentOS.

    Espero que una de estas soluciones te ayude a resolver el problema con el token inválido. ¡Buena suerte!

Comments are closed.