Artigos sobre: Host de Bots de Discord

Como usar a Pterodactyl API (JS)

Com o nosso painel Apollo podes interagir com a API que te dá a possibilidade de controlares o teu servidor usando o teu bot de Discord ou a tua aplicação JavaScript. Vamos-te mostrar o processo de como fazer isso através do método HTTP.

Aprende como usar a API Pterodactyl em JS!

Como usar a Pterodactyl API (JS)



Primeiro precisamos criar uma “API key”. Vamos precisar dela pois é esta que permite a comunicação entre o teu servidor e o painel. Para fazermos isso clica em “API Credentials” que fica no menu lateral da página principal.

Escolhe uma descrição customizada para identificares a tua API e os IPs que tem permissão de usar a API. Isto é útil te quiseres assegurar que só pessoas selecionadas por ti é que podem ter acesso à tua API key. Podes deixar o campo vazio se quiseres que qualquer pessoa possa usar a tua key.



A key é mostrada apenas uma vez. Guarda um backup da tua key!



Agora estamos prontos para começar com o nosso código! Vais precisar de uma biblioteca HTTP, neste caso vamos usar a axios. Vais conseguir ver todos os endpoints da pterodactyl aqui. Não te esqueças que a página de documentação não é oficial.


Neste exemplo vamos mostrar como usar os endpoints mais uteis.

Como verificar a integridade e informação do servidor

Para verificares a integridade do teu servidor, vais precisar de fazer uma “request” (pedido) para /api/client/servers/<server id>. Obviamente, tendo em conta que tens de substituir onde que está escrito <server id> pelo id do teu servidor.

Aqui está um exemplo de como fazer esta request:

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);
  })


Resultado:



Como receber informação em tempo real sobre o teu servidor (ex.: inputs da consola, estado do servidor)


Para isto vais precisar de usar outra biblioteca chamada ws. A Pterodactyl usa sockets para enviar e receber informação em tempo real. Podes usar este código para isso:

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:



Vê mais informações sobre web socket requests aqui.



Se precisares de mais ajuda cria um ticket aqui.

Criado por: Greg K
Traduzido por: David S.

Actualizado em: 06/03/2023

Esse artigo foi útil?

Partilhe o seu feedback

Cancelar

Obrigado!