Como usar a Pterodactyl API (JS)
Artigos sobre: Host de Bots de Discord
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/
. 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:
undefined const axios = require('axios'); const apiKey = 'My API Key' axios.get('https://control.sparkedhost.us/api/client/servers/, { 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:
undefined 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
Actualizado el: 31/07/2024
¡Gracias!