+4

Tạo một Discord Bot gửi ảnh Anime đơn giản bằng Nodejs

MỞ BÀI

Chắc hẳn mọi người ở đây đều đã biết đến Discord. Discord là một phần mềm miễn phí với nhiều tính năng có thể kể đến như là gửi tin nhắn, video call, livestream,... Trong bài viết này mình sẽ hướng dẫn các bạn tạo 1 con bot gửi hình ảnh thông qua command trên Discord bằng Javascript.

CHUẨN BỊ

image.png

  • Sau đó đặt tên cho ứng dụng của bạn và chấp nhận điều khoản

image.png

  • Sau khi tạo xong, tiếp tục vô phần Bot và chỉnh quyền thành Administrator và đồng thời bật MESSAGE CONTENT INTENT

image.png

  • Tiếp tục sang OAuth2, tại Scope thì bật Bot và để quyền là Administrator

image.png

  • Kéo xuống phía dưới bạn sẽ có 1 link mời con bot về server discord của bạn, hãy cho nó về Server của bạn

image.png

  • Lúc này hãy quay lại chỗ Bot để tạo một token, token này rất quan trọng giúp Bot đăng nhập vô Discord. Các bạn ấn Reset Token để có 1 token mới.

image.png

TIẾN HÀNH CÀI ĐẶT CODE

  • Mình sử dụng các Packages sau:

    - discord.js: Đây là Package của Discord cho phép Bot đăng nhập và tương tác với người dùng.
    - axios: Đây là 1 thư viện HTTP Client dựa trên Promise dành cho Nodejs.
    - dotenv: Dùng để sử dụng file .env
    - nodemon: Nó sẽ giúp mình tăng hiệu quả làm việc hơn khi dev
    
  • Các command sẽ dùng:

    - npm init -y : cái này để tạo 1 project
    - npm install dotenv axios discord.js
    - npm install -g nodemon
    
  • Tại file package.json thêm dòng này

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "nodemon index.js"
     },
    

    Tạo 1 file .env, chứa TOKEN mà bạn vừa mới nhập

    TOKEN_BOT=<TOKEN_CUA_BAN>
    

    Tạo 1 file index.js có nội dung như sau

     const { Client, GatewayIntentBits } = require('discord.js');
     const axios = require("axios")
     require('dotenv').config()
    
     const client = new Client({ intents: [
         GatewayIntentBits.Guilds,
         GatewayIntentBits.GuildMessages,
          GatewayIntentBits.MessageContent]
     });
    
     client.on('ready', () => {
       console.log(`Logged in as ${client.user.tag}!`);
     });
    
     client.on('messageCreate', async message => {
         if (message.mentions.has(client.user)) {
             message.reply("dùng /neko");
         }
         if (message.author.bot) return;
         if (message.content.startsWith("/")) {
             if (message.content=="/neko") {
                 const response = await axios.get('https://nekos.best/api/v2/neko');
                 const neko_img = response.data.results[0]["url"];
    
                 message.reply(neko_img)
             }
         }
     });
    
     client.login(process.env.TOKEN_BOT);
    

    Để chạy script thì ta dùng lệnh npm start

    Dưới đây là con bot mẫu của mình image.png

    Chúc các bạn thành công

THAM KHẢO


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí