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

Tạo ứng dụng giao tiếp với Bot Telegram bằng Node.js + Docker và deploy lên EC2 AWS (Phần 1)

0 0 36

Người đăng: Kha Leo

Theo Viblo Asia

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

  1. Mở ứng dụng telegram và tìm kiếm từ khoá BotFather và chọn BotFather có tick xanh image.png

  2. Nhấn vào Start

  3. 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 image.png

  4. Nhập tên cho Bot image.png

  5. Nhập username cho Bot

  6. Hệ thống sẽ trả về kết quả có chứa secret token nếu bước trên thành công image.png

II. Tạo ứng dụng Node.js

  1. Cài đặt NodeJs nếu chưa có: https://nodejs.org/en/

  2. Tạo folder chứa project và đặt tên bot-tele-sample

  3. Cd your-path/bot-tele-sample bằng terminal/cmd

  4. Code . (Ở đây mình shortcut vscode, bạn có thể mở project một cách thủ công)

  5. Chạy lệnh npm init image.png

  6. Enter (lấy tên folder cho tên package) hoặc nhập tên package khác

  7. Ở các bước tiếp theo bạn cứ Enter cho nhanh 😹 image.png

  8. Tạo file index.js

  9. Install package telegraf - package được recommend bởi chính telegram: npm i telegraf

  10. Import telegraf và khởi tạo instance cho nó với token mà bạn đã được cấp trước đó image.png

  11. 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
  1. Vào telegram tìm username bạn tạo cho bot và start trò chuyện với nó image.png

  2. Bot sẽ trả lời "Welcome" như trong đoạn code của chúng ta vừa thêm image.png

  3. Gửi tin nhắn /help và Bot sẽ phản hồi image.png

  4. 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("🐶"));

  1. Gửi cho Bot một sticker, bạn sẽ nhận được reply từ nó image.png

  2. 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..."); }
});
  1. Gửi tin nhắn cho Bot thôi nào

image.png

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ư:

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 [email protected] của mình nha

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

Bình luận

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

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

Cài đặt WSL / WSL2 trên Windows 10 để code như trên Ubuntu

Sau vài ba năm mình chuyển qua code trên Ubuntu thì thật không thể phủ nhận rằng mình đã yêu em nó. Cá nhân mình sử dụng Ubuntu để code web thì thật là tuyệt vời.

0 0 397

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

Hướng dẫn làm bot Facebook messenger cho tài khoản cá nhân

Giới thiệu. Trong bài viết trước thì mình có hướng dẫn các bạn làm chatbot facebook messenger cho fanpage. Hôm nay mình sẽ hướng dẫn các bạn tạo chatbot cho một tài khoản facebook cá nhân. Chuẩn bị.

0 0 196

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

Crawl website sử dụng Node.js và Puppeteer - phần 2

trong phần 1 mình đã giới thiệu về puppeteer và tạo được 1 project cùng một số file đầu tiên để các bạn có thể crawl dữ liệu từ một trang web bất kỳ. Bài này mình sẽ tiếp nối bài viết trước để hoàn thiện seri này.

0 0 73

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

Điều React luôn giữ kín trong tim

■ Mở đầu. Ngồi viết bài khi đang nghĩ vu vơ chuyện con gà hay quả trứng có trước, mình phân vân chưa biết sẽ chọn chủ đề gì để chúng ta có thể cùng nhau bàn luận.

0 0 59

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

Gửi Mail với Nodejs và AWS SES

AWS SES. AWS SES là gì.

0 0 83

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

Crawl website sử dụng Node.js và Puppeteer - phần 1

Bài viết này mình sẽ giới thiệu cho các bạn craw dữ liệu của web site sử dụng nodejs và Puppeteer. .

0 0 164