+23

Tạo tool NHẮC LẤY VỢ

Anh em IT chúng ta thường rất bận rộn với trăm công ngàn việc, đôi khi quên cả việc lấy vợ. Vì thế mình ở đây để hướng dẫn các bạn tạo ra một tool nhắc nhở các bạn lấy vợ dựa trên độ tuổi bạn mong muốn

1. Mô tả

Tự động nhắc nhở bạn lấy vợ qua Telegram vào năm N

2. Chuẩn bị

  • NodeJS
  • Telegram

3. Cấu trúc dự án

4. Triển khai

4.1 Khởi tạo dự án

npm init -y && \
npm i telegraf && \
npm i node-schedule && \
npm i dotenv && \
npm i -D nodemon
  • npm init -y: Init package.json

  • npm i telegraf: Telegram bot

  • npm i node-schedule: Schedule jobs

  • npm i dotenv: Load environment variables

  • npm i -D nodemon: Start dev mode

Package.json file

{
  "name": "lay-vo-tool",
  "version": "1.0.0",
  "description": "",
  "main": "./src/main.js",
  "type": "module",
  "scripts": {
    "start": "node .",
    "start:dev": "nodemon .",
    "trigger": "node ./src/trigger"
  },
  "dependencies": {
    "dotenv": "^16.3.1",
    "node-schedule": "^2.1.1",
    "telegraf": "^4.12.2"
  },
  "devDependencies": {
    "nodemon": "^2.0.22"
  }
}

4.2 Tạo telegram bot

@BotFather

Chọn Start BotFather

Click Start trong BotFather chat và BotFather phản hồi nội dung như hình

Chọn /newbot

Nhập name và username của bot

Lưu trữ token API (mũi tên màu cam trong hình)

Sau đó click vào phòng chat của bot (mũi tên màu vàng trong hình) và nhấn Start

Tạo channel

Thêm bot vào channel

Administrators ➡️ Add Admin. Lưu ý cấp đầy đủ quyền cho bot

Lấy channel ID

Trong channel, nhập message bất kỳ, click Forward đến Json Dump Bot

Json Dump Bot trả về json data, lấy id trong forward_from_chat

{
  ...
    "forward_from_chat": {
      "id": -1001835159917,
      "title": "Ngày tôi lấy vợ",
      "type": "channel"
    },
  ...
}

4.3 Code

Sau khi đã lấy được Channel IDToken API, COPY & PAST .env

TELEGRAM_TOKEN=
TELEGRAM_CHANNEL_ID=

COPY & PAST main.js

import 'dotenv/config';
import { Telegraf } from 'telegraf';

const main = async () => {
  const token = process.env.TELEGRAM_TOKEN;
  const channelID = process.env.TELEGRAM_CHANNEL_ID;
  const message = '⏰⏰⏰ ĐÃ TỚI LÚC LẤY VỢ RỒI BẠN ƠI!!!';

  const bot = new Telegraf(token);
  await bot.telegram.sendMessage(channelID, message);
};

export default main;

COPY & PAST trigger.js

import schedule from 'node-schedule';
import main from './main.js';

const date = new Date(2030, 4, 4, 1, 2, 3); // 01:02:03 04/05/2030

const job = schedule.scheduleJob(date, () => {
  main();
});

4.4 Test

Chỉnh lại date trong trigger.js phù hợp để test

//...

const date = new Date('year', 'monthIndex', 'date', 'hours', 'minutes', 'seconds');

//...

Chạy lệnh npm run trigger

Kết bài

Thành quả là các bạn sẽ có một con bot thông báo NHẮC LẤY VỢ theo ngày bạn cài đặt

Hy vọng bài viết này giúp các bạn không quên lấy vợ (thực ra mục đích của bài viết này là hướng dẫn tạo Telegram Bot nhe các bạn :v, bạn có thể sử dụng Telegram Bot để làm nhiều thứ hay ho như log, notification,... cho dự án của bạn)

Cảm ơn các bạn đã đọc


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í