Primeros pasos en Discord.JS
Tags: node, npm, javascript, discord
Published: 2021-03-03 00:16:07

---
title: Primeros pasos en Discord.JS
published: true
description: ¿Quieres iniciarte en el mundo de los bots en discord?, entonces este es el post que debes leer
tags: Node, NPM, Javascript, Discord
cover_image: https://i.imgur.com/T67oZQx.png
serie: Primeros pasos en Discord.js
---
# Introducción

¡Hola!, estamos muy emocionados por darle comienzo a esta serie donde les daremos el empujón inicial hacia la API de Discord, antes que nada vamos a empezar por conocer lo que necesitamos para esta guía.
## Requisitos:
- Javascript básico, ya que es el lenguaje de programación que vamos a usar, aunque hay una variedad de librerias a su disposición, por ejemplo, Python. Sientete libre de probarlas para conseguir tu entorno de programación ideal. 
- Node(+NPM).
- Editor de código (cualquiera).

# Instalando Node

Primero debemos instalar la versión más reciente (o la que sea compatible con tu ordenador) de [Node](https://nodejs.org/es/download/).

![NODE1](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uydiynhffy5ichm4d8zv.png)

Le recomendamos instalar la versión **LTS** debido a que es la que proporciona mayor estabilidad, pero si desea probar las últimas caracteristicas que ofrece Node instale la versión más reciente.

> Las versiones más recientes de Node no soportan Windows 7, si usted es usuario de este sistema operativo debe instalar la versión 13 o anteriores.

Cabe destacar que el instalador trae consigo NPM, que será nuestro gestor de paquetes aliado a lo largo de todo este proceso.

# Inicializando el proyecto

## 1. Creando cuenta del bot
Una vez instalado Node en nuestro sistema es hora de crear una cuenta para el bot en el portal de [desarrolladores de discord](https://discord.com/developers/applications).

> Para acceder a el portal de desarrolladores deberás iniciar sesión con tu cuenta de discord, no te preocupes, es un portal oficial.

1. Click en New application
![DISCORD2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ppk9nw54itpu6gcumj9y.png)
2. Ingresa el nombre que le quieras colocar a la aplicación en el portal
![DISCORD3](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2mm4jv2vyjsw1aqdxu6x.png)
3. Click en la pestaña bot
![DISCORD4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/btuad4to0pj3dtq3adcp.png)
4. Create new bot account
![DISCORD5](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wwsxp801j7rt5a8c539g.png)
![DISCORD6](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xvm4v5jhnlbjc2tpewvw.png)
Y aqui podrás editar datos como el nombre del bot, su foto de perfil, si va a ser público, etc.
Guarda datos importante de la cuenta del bot, como el ID y el token ya que los usaremos más adelante.

> NUNCA COMPARTAS DEL TOKEN DEL BOT, EL TOKEN ES LO QUE AUTENTICA LA CONEXIÓN ENTRE EL CÓDIGO Y LA API DE DISCORD, EL MISMO DEBE DE SER PRIVADO. TEN CUIDADO

> Actualmente Discord te informa si el token de alguno de tus bots ha sido publicado en algún sitio, como por ejemplo, Github.

## 2. Invitando el bot al servidor

Ahora vamos a añadir el bot que acabamos de crear a un servidor, te recomendamos tener un servidor de pruebas a la hora de desarrollar bots, por si algo sale mal o simplemente para evitar distracción o saboteo por parte de otros usuarios.

Ingresa a [este sitio web](https://discordapi.com/permissions.html), en el cual podrás generar un link de invitación para el bot, simplemente debes introducir el ID del bot, sin preocuparte ya que el mismo es un dato público, en el mismo sitio podrás decidir que permisos le vas a dar al bot, te recomendamos dejarlo como administrador, pero al hacer un bot público tendrás que darle los permisos que necesite y que se adapten a sus funciones.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tbt8v6nmsyuny7gdzxxi.png)
## 3. Instalando Discord.js

Vamos a empezar a usar el editor de código, te recomendamos [Visual Studio Code](https://code.visualstudio.com/), un editor de código desarrollado por Microsoft, de todas formas puedes usar el de tu preferencia.

Ahora sí, primero vamos a abrir una consola o terminal en la carpeta que vamos a utilizar para trabajar en el bot, y a ejecutar el siguiente comando para iniciar un proyecto con node.

```shell
npm init -y
```

Esto lo que hará es crear el **package.json** el cual es el archivo raíz de nuestro proyecto, en el que se encontraran datos como el nombre del proyecto, la version, comandos de prueba, módulos instalados, y colocará estos valores según una plantilla que viene por defecto.

Tambien puedes usar

```shell
npm init
```

Para introducir cada uno de los datos por ti mismo.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wyo6omeatxp06r7pu79j.png)

Ahora vamos a instalar paquete de discord.js con el siguiente comando:

```shell
npm i discord.js --save
```

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fiym2gxzx58zvbfae4q2.png)

Y al cabo de unos segundos tendras una nueva carpeta creada llamada **node_modules** en esta carpeta se guardarán los paquetes que instales a medida de que vayas avanzando en el proyecto.


# Encendiendo el bot

Te pudiste haber dado cuenta cuando añadiste el bot al servidor que este está desconectado, a partir de ahora vamos a empezar a trabajar con código en el lenguaje de programación Javascript, como dijimos en el principio, te recomendamos rotundamente dos cosas.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fm7qu1xgvu95je5jmskl.png)

1. Si no tienes los conocimientos básicos del mismo por favor, consulta algún curso, puedes conseguir muchos en Youtube de forma gratuita.

2. Trata en lo posible de evitar el Copy&Paste, prueba escribir el código por ti mismo para que te acostumbres a la sintaxis de la libreria, recuerda que en el mundo de la programación todo se consigue con la práctica.

Ahora bien, en la carpeta que habiamos elegido en un principio para desarrollar el proyecto vamos a tener hasta ahora un archivo y una carpeta (node_modules y package.json), algo como esto:

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aumocy6h01byruzrchez.png)

En nuestro editor de código favorito vamos a crear un nuevo archivo el cual podemos titular como queramos, los nombres más comunes son `app.js`, `server.js` o `bot.js`, en lo que resta de la guía vamos a titular el archivo principal del bot como `app.js`.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/42mqnhky02zjx4n69gmt.png)

Ahora en `app.js` vamos a comenzar declarando que necesitamos el modulo de Discord.js

```js
const Discord = require('discord.js');
const client = new Discord.Client();
```
Vamos a crear el **evento ready** el cual se llamará una vez el bot se haya iniciado correctamente.

```js
client.on('ready', () => { 
	console.log('El bot se ha iniciado correctamente'); 
});
```

Vamos a crear el **evento message** el cual es el evento fudamental de nuestro bot, el cual detecta cuando un usuario envia un mensaje en alguno de los servidores donde se encuentra el bot o via mensaje directo, el nombre con el cual nos referimos al objeto del mensaje puede ser cualquiera en realidad, los mas usados son `msg` o `message`, en lo que resta de guía nos vamos a referir al mismo como `message`.

```js

client.on('message', (message) => {

//Código 

});
```

Ahora por último añadiremos nuestro token, la cual es la llave que nos dará acceso a la cuenta del bot en si y por ende acceso a la API de Discord, recuerda **no debes compartir este dato con nadie**

```js
client.login('token');
```

Recuerda sustituir la palabra "token" por el que se le asignó a tu bot en el portal de desarrolladores de Discord.

Y eso sería todo, el código quedaría algo así:

```js
const Discord = require("discord.js"); 
const client = new Discord.Client(); 

//Evento ready 

client.on('ready', () => { 

	console.log('El bot se ha iniciado correctamente');  
	
}); 

//Evento message 

client.on('message', (message) => { 

//Código 

}); 

client.login('token');
```

Ahora, ¿por qué no probamos a añadir nuestro primer comando?
Vamos a añadir el siguiente código dentro del evento message

```js
if(message.content.startsWith('!'+'ping')){
message.channel.send('¡Pong!');
};
```

En la primera línea colocamos una condicional que va a devolver `true` en caso de que el contenido del mensaje que envie el usuario sea `!ping`, luego de eso el bot enviará un mensaje diciendo `¡Pong!`, eso es lo que estamos haciendo en este código.

Finalmente vamos a encender el bot.
Simplemente debes abrir una terminal en al carpeta raíz del proyecto y ejecutar el siguiente comando

```shell
node app.js
```

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cx73onbs7mz6w370p00a.png)

Hay una mejor forma, usando el módulo `nodemon` el cual lo que hace es mantener el bot encendido y lo reinicia de forma automática cada vez que realizamos un cambio en el código, es bastante útil, para instalarlo, en la misma consola ejecutamos el siguiente comando:

```shell
npm i nodemon -g
```

El cual instalará de manera global el módulo, por lo que no vas a tener que instalarlo en cada proyecto que vayas a crear.

Utilizarlo es bastante sencillo, solo con un comando

```shell
nodemon app
```

Si vamos a Discord, al servidor de pruebas en el que añadimos al bot podremos observar que el bot ya está en línea, ahora queda probar que el comando funcione correctamente.

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xtapl7yw3fvvjv900otz.png)

Y listo, ya tienes un bot funcional, pero eso no es todo, si quieres seguir aprendiendo sobre este tópico, puedes revisar nuestras guías en las cuales ponemos a tu disposición temas como embeds, prefijos, reacciones y mucho más.

Esperamos que esta guía te haya sido de ayuda, recuerda seguirnos en nuestra cuenta de [Instagram](https://instagram.com/somos.devs).