Artículos sobre: Alojamiento de Bots de Discord

Cómo usar la API de Pterodactyl (JS)

Con nuestro panel Apollo, podrás interactuar con la API y controlar tu servidor usando tu bot de discord o aplicación JavaScript. Estaremos mostrando el método HTTP.

Aprende cómo usar la API Pterodactyl en JavaScript!

Cómo usar la API de Pterodactyl (JS)



Primero, necesitamos crear una llave API. Necesitamos esto para interactuar con el panel. Para hacer esto, haz click en “API Credentials” en la parte izquierda del Panel.

Coloca la descripción y las IP’s permitidas. Esto es útil si te gustaría asegurar el uso de la llave API. Déjalo en blanco si te gustaría permitir el acceso de cualquier dirección IP a la llave API.



La llave API está mostrada. Sólo puedes ver la llave API una vez. ¡ Mantén registro de la llave API!



Ahora podemos empezar a programar! Necesitaremos una librería HTTP. En este caso, vamos a usar axios. Puedes ver todos los endpoints de pterodactyl aquí. ¡Por favor nota que la página de documentación no es oficial!

En este ejemplo, cubriremos los endpoints más útiles.

Cómo revisar la información de un servidor

Para revisar el status de un servidor, puedes hacer una petición a /api/client/servers/<server id>. Por supuesto, reemplaza <server id> con el id de tu servidor.

Aquí está el ejemplo de la petición:

const axios = require('axios');
const apiKey = 'My API Key'

axios.get('https://control.sparkedhost.us/api/client/servers/<server Id>, {
    headers: {
        'Accept': 'application/json',
        'content-type': 'application/json',
        'Authorization': 'Bearer ' + apiKey
    }
})
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  })




Cómo recibir la estadísticas en vivo del servidor (e.g Ingreso en Consola, status)

Para esto, necesitarás usar otra librería llamada ws. Pterodactyl usa sockets para enviar y recibir archivos en vivo. Puedes usar el código siguiente:

const axios = require('axios');
const WebSocket = require('ws')

const apiKey = 'zvVLw6PAenoTczUyJTa2XPZYXiQHZ8DYkZwnmuKz7kcFZIF0';

axios.get('https://control.sparkedhost.us/api/client/servers/f7a7faee/websocket', {
    headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
            'Authorization': 'Bearer ' + apiKey,
        }
    })
    .then(function (response) {
        const token = response.data.data.token;
        const ws = new WebSocket(response.data.data.socket);

        ws.on('open', function open() {
            ws.send(JSON.stringify({"event":"auth","args":[token]}));
          });
          
          ws.on('message', function message(data) {
            console.log(data);
          });
          
          ws.on('error', function error(err) {
              console.log(err);
          });
    })
    .catch(function (error) {
        console.log(error);
    });


Resultado:



Puedes ver más acerca de peticiones websocket aquí.


Si necesita más ayuda, por favor crea un ticket aquí.


Creado por: Daniel R.

Actualizado el: 20/12/2022

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!