Telegram đang ngày càng được sử dụng rộng rãi vì những chức năng mà nó mang lại (chỉnh sửa tin nhắn đã gửi, gửi file dung lượng lớn, last seen,...) với một performance vô cùng tuyệt vời. Một trong những tính năng đó là Bot Telegram, có rất nhiều bot trong các loại dịch vụ khác nhau phục vụ mục đích giao tiếp kỹ thuật số.
Bot Telegram có thể làm mọi thứ và giúp tiết kiệm thời gian. Vì thế hôm nay mình sẽ hướng dẫn tạo một project sử dụng Node.js + Docker để tương tác với Bot Telegram nhé.
I. Đăng kí Bot với Telegram
-
Mở ứng dụng telegram và tìm kiếm từ khoá
BotFather
và chọn BotFather có tick xanh -
Nhấn vào
Start
-
Hệ thống sẽ hiển thị đoạn chat, bạn có thể chọn ngay
/newbot - create a new bot
hoặc nhắn trực tiếp từ khoá/newbot
bằng khung chat -
Nhập tên cho Bot
-
Nhập username cho Bot
-
Hệ thống sẽ trả về kết quả có chứa secret token nếu bước trên thành công
II. Tạo ứng dụng Node.js
-
Cài đặt NodeJs nếu chưa có: https://nodejs.org/en/
-
Tạo folder chứa project và đặt tên
bot-tele-sample
-
Cd your-path/bot-tele-sample bằng terminal/cmd
-
Gõ
Code .
(Ở đây mình shortcut vscode, bạn có thể mở project một cách thủ công) -
Chạy lệnh
npm init
-
Enter (lấy tên folder cho tên package) hoặc nhập tên package khác
-
Ở các bước tiếp theo bạn cứ Enter cho nhanh 😹
-
Tạo file index.js
-
Install package telegraf - package được recommend bởi chính telegram:
npm i telegraf
-
Import telegraf và khởi tạo instance cho nó với token mà bạn đã được cấp trước đó
-
Thêm 2 dòng lệnh và lauch bot
bot.start((ctx) => ctx.reply("Welcome"));
bot.help((ctx) => ctx.reply("Send me a sticker"));
- ctx.reply(message) là nội dung mà Bot sẽ gửi cho bạn
-
Vào telegram tìm username bạn tạo cho bot và start trò chuyện với nó
-
Bot sẽ trả lời "Welcome" như trong đoạn code của chúng ta vừa thêm
-
Gửi tin nhắn
/help
và Bot sẽ phản hồi -
Thêm dòng lệnh lắng nghe những tin nhắn được gửi bằng sticker, sau đó restart lại project
bot.on("sticker", (ctx) => ctx.reply("🐶"));
-
Gửi cho Bot một sticker, bạn sẽ nhận được reply từ nó
-
Thêm một đoạn code để lắng nghe messages được gửi đi, sau đó restart lại project
bot.on("message", async (ctx) => {
const message = ctx.update.message.text;
if (message.match(/hello/)) {
ctx.reply("Xin chào");
} else {
ctx.reply("Hong hiểu...");
}
});
- Gửi tin nhắn cho Bot thôi nào
Code file index.js
const { Telegraf } = require("telegraf");
const YOUR_TOKEN = "your_token";
const bot = new Telegraf(YOUR_TOKEN);
bot.start((ctx) => ctx.reply("Welcome"));
bot.help((ctx) => ctx.reply("Send me a sticker"));
bot.on("sticker", (ctx) => ctx.reply("🐶"));
bot.on("message", async (ctx) => {
const message = ctx.update.message.text;
if (message.match(/hello/)) {
ctx.reply("Xin chào");
} else {
ctx.reply("Hong hiểu...");
}
});
bot.launch();
III. Run Docker
Hẹn các bạn ở phần 2 nhé ^^, trong phần tiếp theo mình sẽ hướng dẫn các bạn setup Docker và deploy project lên AWS EC2.
Mục tìm kiếm đồng đội
Hiện tại thì bên công ty mình, là Hoàng Phúc International, với hơn 30 năm kinh nghiệm trong lĩnh vực thời trang. Và là trang thương mại điện tử về thời trang lớn nhất Việt Nam. Team công nghệ của HPI đang tìm kiếm đồng đội cho các vị trí như:
- Senior Backend Engineer (Java). Link JD: https://tuyendung.hoang-phuc.com/job/senior-backend-engineer-1022
- Senior Front-end Engineer (VueJS). https://tuyendung.hoang-phuc.com/job/senior-frontend-engineer-1021
- Junior Backend Engineer (Java). https://tuyendung.hoang-phuc.com/job/junior-backend-engineer-1067
- Junior Front-end Engineer (VueJS). https://tuyendung.hoang-phuc.com/careers/job/1068
- App (Flutter). https://tuyendung.hoang-phuc.com/job/mobile-app-engineer-flutter-1239
- Senior Data Engineer. https://tuyendung.hoang-phuc.com/job/seniorjunior-data-engineer-1221
Với mục tiêu trong vòng 5 năm tới về mảng công nghệ là:
- Sẽ có trang web nằm trong top 10 trang web nhanh nhất VN với 20 triệu lượt truy cập mỗi tháng.
- 5 triệu loyal customers và có hơn 10 triệu transactions mỗi năm.
Team đang xây dựng một hệ thống rất lớn với rất nhiều vấn để cần giải quyết, và sẽ có rất nhiều bài toàn thú vị cho các bạn. Nếu các bạn có hứng thú trong việc xây dựng một hệ thống lớn, linh hoạt, dễ dàng mở rộng, và performance cao với kiến trúc microservices thì hãy tham gia với tụi mình.
Nếu các bạn quan tâm hãy gửi CV ở trong trang tuyển dụng của Hoàng Phúc International hoặc qua email kha.le@hoang-phuc.net của mình nha
Cảm ơn các bạn đã đọc.