¿Cómo usar los métodos logOut() y close() en nuestro Bot?

¿Cómo usar los métodos logOut() y close() en nuestro Bot?

En este artículo os queremos enseñaros a usar los métodos logOut() y close() que llegaron en la versión 5.0 de la API de Bots de Telegram en nuestro bot de Telegram en NodeJS.

La utilidad de estos métodos solo la encontraremos si queremos usar la API de Bots de forma local, esto es posible gracias a que Telegram libero el código fuente de esta API permitiendonos tener nuestro propio servidor. Podéis ver el código fuente en este repositorio: telegram-bot-api.

¿Para que sirven estos métodos?

  • logOut(): Este método sirve para cerrar sesión en el servidor de API de Bot de Telegram para después poder iniciar sesión desde nuestra propia instancia de la API de Bots que estaremos ejecutando localmente y no necesita que le pasemos ningún parámetro. Devuelve True en caso de éxito.
  • close(): este método sirve para cerrar la instancia de nuestro bot antes de moverla de un servidor local a otro. Devuelve True en caso de éxito.

Al usar el método logOut() no podrás iniciar sesión con tu token actual de nuevo en los servers de la API de Bots de Telegram hasta pasados 10 minutos, otra opción es ir a Botfather y generar un nuevo token que nos permitirá iniciar sesión de forma instantánea.

Por otra parte al usar el método close() nos devolverá el error 429 en los primeros 10 minutos después de que se inicie el bot de nuevo.

¿Cómo usar el servidor local con la API en NodeJS?

Para los que queráis usar la api de bots node-telegram-bot-api con el servidor local de la Bot API lo que debemos hacer al declarar el constructor "TelegramBot" es pasarle un segundo parámetro llamado options donde especificamos la URL de conexión en baseApiUrl que será la URL donde tendrámos ese servidor corriendo.

const options = {
 polling: true,
 baseApiUrl: 'http://localhost:8080'
};

const bot = new TelegramBot(token, options);

⚠️ Nota: Recordar que para poder bajar archivos con la Bot API instalada en local ese servidor tiene que estar configurado como HTTPS, ya que si realizas peticiones HTTP nos recibiras los archivos.