- vừa được xem lúc

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

0 0 8

Người đăng: Tiến Đạt Spycio Vũ

Theo Viblo Asia

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

Bình luận

Bài viết tương tự

- vừa được xem lúc

Lợi ích templates .gitignore trong dự án

Mở đầu. Gitignore là một file trong các dự án Git, nó chứa danh sách các tệp và thư mục mà bạn muốn Git bỏ qua (không theo dõi) khi bạn thực hiện các thao tác như git add hoặc git commit.

0 0 15

- vừa được xem lúc

Deploy ELK Stack với Docker

Hello các bạn lại là mình đây Chúc các bạn có kì nghỉ 30/4-1/5 vui vẻ và an toàn . Tiếp tục series học Docker và CICD của mình, hôm nay ta sẽ cùng nhau làm một bài "tàu nhanh" setup ELK Stack bao gồm

0 0 13

- vừa được xem lúc

Transaction trong Rails: Đảm bảo tính toàn vẹn và nhất quán dữ liệu

1. Lời mở đầu.

0 0 14

- vừa được xem lúc

Giới thiệu về Zabbix

1. Lời mở đầu.

0 0 12

- vừa được xem lúc

Ronin Engineer Tích Hợp với VNPay Như Thế Nào?

Hello mọi người, mình là một Ronin Engineer. Hôm nay mình sẽ trình bày website roninhub.com bên mình tích hợp với VNPay như nào thế. 1.

0 0 11

- vừa được xem lúc

Phần 1: Khám phá golang - Bước đầu tiên

Giới thiệu. Sự ra đời.

0 0 10