Telegram và kênh gửi/nhận thông báo tức thì

Telegram và kênh gửi/nhận thông báo tức thì

Tin ngắn hàng ngày dành cho bạn
  • Hôm nay tình cờ mình biết đến trang web notes.andymatuschak.org có cách ghi chú rất hay. Bấm vào liên kết nó mở ra một thẻ mới bên cạnh. Cứ thế bấm vào thì nó lại tiếp tục mở ra. Giống như các ngăn tài liệu vậy.

    Kiểu trình bày này vừa dễ theo dõi mà còn đúng như kiểu viết theo mạch cảm xúc luôn. Tiếc là không thấy tác giả nguồn mở dự án này. Không biết có cái nào tương tự không ta 🤔

    » Xem thêm
  • Bạn nhận thấy sự khác biệt gì trong bức ảnh này không 😁

    » Xem thêm
  • Instagram hôm nay vừa mới giới thiệu ứng dụng chỉnh sửa video dành cho người sáng tạo nội dung có tên là Edits. Tầm này là cạnh tranh trực tiếp với các ứng dụng phổ biến trên thị trường luôn. Cơ mà chắc phải một thời gian nữa vì ngó qua tính năng vẫn hết sức cơ bản, đủ dùng thôi.

    À nhân tiện khoe luôn mình "chơi" IG cũng hơn 10 năm rồi đấy. Mọi người ai có IG thì để lại tài khoản cho mình xem với nhé 🥳.

    IG của mình là hoaitx_

    » Xem thêm

Vấn đề

Có thể bạn đã biết về ứng dụng nhắn tin Telegram, nó cho phép chúng ta gọi điện, nhắn tin qua mạng internet rất nhanh chóng mà không bị giới hạn gì ảnh hưởng đến những chức năng liên lạc cơ bản. Cá nhân mình thấy Telegram tập trung hỗ trợ vấn đề nhắn tin rất tốt. Tốc độ gửi tin nhanh và chưa bao giờ gặp tình trạng "miss" tin nhắn hay thông báo nào cả.

Ngoài gọi điện, nhắn tin trao đổi đôi bên, Telegram còn hỗ trợ trao đổi thông qua Nhóm (Group) hoặc Kênh (Channel). Group thì quá quen thuộc rồi, nơi chúng ta có thể thêm nhiều người một lúc để cùng trò truyện. Còn đối với Channel thì khác hơn một tí, nơi mọi người đăng kí theo dõi kênh để nhận tin mỗi khi Quản trị viên của kênh thực hiện hành động gửi tin nhắn.

Những tiện ích mà Channel mang lại cộng với hiệu năng ứng dụng tốt. Nếu tận dụng được Telegram để gửi những "cảnh báo" chẳng hạn như API lỗi, hệ thống bị downtime... bất kì thông tin gì mà cần được cảnh báo ngay lập tức trong hệ thống thông tin/phần mềm khi xảy ra sự cố thì quả là tuyệt vời.

Giới thiệu về Channel và Telegram BOT

Telegram cung cấp API và tài liệu cho việc tích hợp API của họ. Bạn đọc có thể xem tại Telegram APIs. Trong mục này, đáng chú ý là Telegram Bot API. Bởi vì bài viết này tôi sẽ hướng dẫn mọi người cách sử dụng BOT của Telegram để gửi tin nhắn đến Channel.

BOT trong Telegram có vai trò gần giống như một người thông thường, nó được tạo ra từ tài khoản người dùng. Khi được thêm vào Channel, BOT có thể gửi tin nhắn vào Channel thông qua API.

Mô phỏng quá trình thông báo rất đơn giản. Bạn tạo ra một Channel dưới dạng Private (kênh bí mật) phục vụ cho mục đích gửi/nhận thông báo, thêm những tài khoản muốn nhận thông báo vào và cuối cùng là thêm một chú BOT vừa tạo ở trên để phục vụ cho mục gửi tin.

Trong thực tế có nhiều trường hợp mà chúng ta mong muốn nhận được thông báo ngay lập tức. Chẳng hạn như bạn muốn nhận được thông báo khi việc gọi sang API của một bên thứ 3 bị lỗi, hay là muốn theo dõi thông báo quan trọng trong một hệ thống để kịp thời hành động nào đó... Dĩ nhiên bạn vẫn triển khai dịch vụ tracking hay logging, nhưng hãy phân biệt hai việc đó với nhận thông báo tức thì. Logging là hành động ghi chép lại những thay đổi sử dụng cho truy vết còn thông báo tức thì đòi hỏi việc nhận được thông tin quan trọng ngay lập tức.

Triển khai BOT gửi tin nhắn đến Channel

Các bước triển khai rất đơn giản. Bạn cần có một tài khoản Telegram là được.

Đầu tiên chat với @BotFather bấm vào "Bắt đầu" rồi nhập vào khung chat /newbot và làm theo hướng dẫn để hoàn thành việc tạo BOT.

Telegram BotFather

Sau khi tạo BOT thành công bạn sẽ lấy được token của BOT, hãy sao chép lại nó để lúc gửi tin nhắn sẽ cần dùng.

Telegram BOT token

Tiếp theo, Bấm vào nút để thêm mới một kênh.

Tạo kênh mới

Thêm BOT vào channel bằng cách bấm vào Tên channel > Subscribers > Add Subscribers > Thêm bot vừa tạo vào Channel.

Tiếp theo cần lấy được liên kết của kênh bằng cách từ Channel > Edit > Invite Links > Copy lại Invite Link.

Lấy Invite Link

Gửi link vừa copy vào @username_to_id_bot để xem được ID của Channel. Chúng ta cần ID của kênh để sử dụng trong API gửi tin nhắn.

Lấy ID kênh

Bây giờ đã có thể gọi API sendMessage để BOT gửi tin nhắn đến kênh.

$ curl --location --request POST 'https://api.telegram.org/bot5907053822:AAHUed6Tp_XUqnweDYc8ghuZJihf6mtG_X0/sendMessage' \
--header 'Content-Type: application/json' \
--data-raw '{
    "chat_id": "-1001828347283",
    "text": "Hello World",
    "parse_mode": "html"
}'

{"ok":true,"result":{"message_id":3,"sender_chat":{"id":-1001828347283,"title":"2COFFEE DEMO","type":"channel"},"chat":{"id":-1001828347283,"title":"2COFFEE DEMO","type":"channel"},"date":1669134411,"text":"Hello World"}}

Ngay lập tức bạn sẽ thấy tin nhắn gửi đến kênh.

tin nhắn đầu tiên đến kênh

Bạn có thể tạo một hàm sendMessage đơn giản rồi dùng nó trong dự án của bạn.

sendMessage(token: string, chatId: string, message: string) {
  return this.http.post({
    path: `/bot${token}/sendMessage`,
    data: {
      chat_id: chatId,
      text: message,
      parse_mode: "html",
    }
  });
}

Limit

Vì là một dịch vụ nhắn tin cho nên Telegram đặt ra một số giới hạn với BOT và khi gọi API của họ. Ví dụ như không thể tạo quá 20 BOTs, tránh gửi hơn 1 tin nhắn trong vòng 1s, và tránh gửi quá 20 tin nhắn trong mỗi phút cho cùng một group/channel...

Bạn đọc có thể tham khảo thêm tại Bots FAQ hoặc Telegram Limits.

Tổng kết

Trong bài viết này tôi hy vọng mang đến cho mọi người một cách để nhận thông báo thúc đẩy hành động tức thì khi quản lý các dịch vụ internet/máy chủ... Đây chỉ là một tricks nhỏ chứ không hoàn toàn thay thế được nhu cầu theo dõi (tracking) hay ghi logs chuyên nghiệp, vì thế hãy cân nhắc sử dụng sao cho hợp lý. Ngoài Telegram ra vẫn còn một số nền tảng bạn có thể làm được tương tự như Slack, Discord...

Cao cấp
Hello

5 bài học sâu sắc

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Mỗi sản phẩm đi kèm với những câu chuyện. Thành công của người khác là nguồn cảm hứng cho nhiều người theo sau. 5 bài học rút ra được đã thay đổi con người tôi mãi mãi. Còn bạn? Hãy bấm vào ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (2)

Nội dung bình luận...
Avatar
Trần Huy Hoàng2 năm trước
Oh cảm ơn đã chia sẻ một cách hay
Trả lời
Avatar
Tuan Nguyen2 năm trước
Đọc các bài viết của bạn từ hồi viết về EventLoop. Cảm ơn bạn về những kiến thức đã chia sẻ. Keep it up and enjoy your coffee!
Trả lời
Avatar
Xuân Hoài Tống2 năm trước
Cảm ơn, đọc đc bình luận của bạn mình rất vui. Hy vọng bạn tiếp tục ủng hộ mình trong tương lai 😄