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
  • Có 2 phần mềm tiện ích cho Mac mà mỗi khi dùng máy Mac Mini hoặc Macbook có cắm thêm màn hình rời, thêm bàn phím với chuột nữa là BetterDisplayMac Mouse Fix. Đi qua từng cái nhé!

    BetterDisplay giúp tinh chỉnh kích thước của màn hình rời để đạt độ phân giải HiDPI. Như bạn biết Mac khá kén màn hình và tuỳ chọn độ phân giải trong cài đặt mặc định rất ít ỏi, nên BetterDisplay cung cấp nhiều lựa chọn phù hợp hơn.

    Cái thứ hai là Mac Mouse Fix, nếu dùng chuột ngoài bạn sẽ thấy nó cuộn không giống với Trackpad của Macbook cho lắm. Điều kì diệu xảy ra khi cài phần mềm này vào. Nó thêm hiệu ứng "smooth" và giúp cuộn chuột y như cuộn bằng Trackpad luôn. Thật thần kỳ.

    » Xem thêm
  • Mọi người còn nhớ grep.app không? Trang cho phép tìm kiếm mọi thứ trên Github chỉ cần đoạn mã xuất hiện trong cụm từ tìm kiếm. Sơ qua thì trang này đang lưu lại dữ liệu từ Github hay làm thế nào đó rồi mới tìm kiếm được, do đó không phải 100% kho lưu trữ công khai đều xuất hiện trên này.

    Mình phát hiện ra Github cũng có trang tương tự, hơi chậm tí thôi cơ mà tìm kiếm 100% luôn nha 😆. Github Search. Mọi người nhớ bấm vào Code ở mục Filter By bên trái để nó tìm chính xác hơn nhé.

    » Xem thêm
  • Vừa gia hạn tên miền cho 2coffee.dev. Vậy là em nó đã 3 tuổi rồi đó mọi người. Sẵn đây nói luôn...

    Mọi người chắc cũng biết về ý nghĩa của cái tên rồi đúng không. Ấy thế mà nó lại đang dính vào "lời nguyền cà phê" bởi vì tên miền có chứa từ khoá "coffee" rất "hot", làm nhiều người hoặc công cụ tìm kiếm đánh giá sai lệch về nội dung của trang web 🥲. Nhiều lúc mình muốn tìm cách để "khai tử" cái tên này đi, thay bằng tên khác thì con đường bớt chông gai hơn.

    Tiền thân của 2coffee.dev là estacks.icu, ấy thế mà sao lại bỏ được cái tên cũ không chút đắn đo? Là vì 2coffee.dev đánh dấu sự trưởng thành trong tư duy làm sản phẩm của mình, ý là nghiêm túc hơn á. Còn stacks.icu vẫn mãi mãi là tiền thân của "Xin chào, một tách cà phê dành cho mấy ông lập trình viên đây".

    » 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 😄