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
  • Mọi người chắc nghe nhiều về xu hướng tìm kiếm thông tin bằng AI chứ không cần công cụ tìm kiếm như Google nữa rồi đúng không? Không đâu xa ánh xạ vào bản thân thì thấy đúng thật, thi thoảng mới tìm kiếm thôi chứ còn đâu toàn hỏi tụi AI.

    Ngay từ đầu viết blog, thứ mà mình hướng đến là chia sẻ kinh nghiệm chứ không phải là những bài mang nặng tính kỹ thuật, máy móc, hướng dẫn từ đầu... Vì thời điểm đó đã có quá nhiều người làm nội dung này rồi và họ làm rất tốt, tại sao mình phải cố phát minh lại bánh xe? Một điều nữa là tin tưởng độc giả của mình có khả năng tìm hiểu vấn đề. Nếu bạn đọc đủ nhiều các bài viết trên blog thì thấy mình luôn cố gắng chèn thêm các liên kết tham khảo ngoài bài viết, nêu ra vấn đề mở và rất ít khi kết luận chắc chắn một điều gì đó.

    Mình đã cố gắng rèn luyện kỹ năng viết, kỹ năng trình bày và cả cách tương tác với độc giả để mang lại giá trị cho họ. Nhiều lúc ngồi lật lại các con số thống kê thấy lượng đọc bài viết tăng lên lại cảm thấy vui. Nhưng khi nguồn truy cập đến từ Google thì lại thấy buồn, vì điều đó chứng tỏ họ biết đến mình chỉ khi đang cố đi tìm giải pháp, có thể họ chỉ đọc chớp nhoáng, may ra tìm được cách giải quyết và thế là đóng cửa sổ trình duyệt rồi đi như một cơn gió.

    Chừng vài tháng đổ lại đây, một điều khiến mình rất vui đó là lượng người truy cập thẳng vào trang chủ mà không thông qua công cụ tìm kiếm đang tăng dần lên, có nhiều hôm lượng truy cập tự nhiên còn cao hơn cả đến từ Google. Điều đó chứng tỏ độc giả đã có thói quen quay lại trang của mình nhiều hơn và họ tìm thấy được giá trị từ blog mang lại. Vui mừng khôn xiết 🤩

    Bên cạnh đó thì lượng truy cập vào chuyên mục Threads - tức là mục mình đang viết bài này đang cao hơn bao giờ hết. Điều đó chứng tỏ xu hướng đi theo tin nhanh là đúng đắn. Mình có thể ngồi cả ngày để viết tin ngắn cho bạn đọc vì nó rất nhanh mà tiện, không tốn công đi tìm tài liệu để viết, không tốn cả thời gian viết nữa, còn mình thì có rất nhiều thứ để chia sẻ 😅. Nhưng không vì thế mà bỏ bê các bài viết dài, vì dài thì có nhiều thông tin để chia sẻ hơn.

    Vài lời tâm sự thế thôi chứ hơn một tháng nay mình chưa viết bài viết mới nào vì công việc bận quá. Xong lâu dần cứ trì hoãn lại thành lười. À với cả tháng 5 này rất thích hợp để đọc các cuốn sách về cách mạng á. Có hôm đọc đến 2 giờ sáng mới đi ngủ 🥱

    » Xem thêm
  • Mình mới nhìn thấy một trang web khá thú vị nói về các cột mốc đáng nhớ trong lịch sử phát triển Internet toàn cầu: Internet Artifacts

    Chỉ từ 1977 - khi Internet còn nằm trong hộp thí nghiệm thì nhìn xem - giờ đây Internet đã khiến mọi thứ phát triển đến mức nào 🫣

    » Xem thêm
  • Cứ nghĩ là máy chủ được "ẩn nấp" sau Cloudflare là sẽ an toàn, nhưng chưa chắc đâu, không có gì là an toàn tuyệt đối trên thế giới Internet này cả. Mời bạn đọc bài viết CloudFlair: Bypassing Cloudflare using Internet-wide scan data để xem tác giả tìm ra địa chỉ IP của máy chủ đã sử dụng Cloudflare như thế nào.

    Tài thật chứ, kiểu gì cũng có những ông ra sức để bảo mật và ngược lại - những ông chuyên đi khai thác lỗ hổng và... đăng blog 🤓

    » Xem thêm

Vấn đề

Telegram - một ứng dụng nhắn tin phổ biến rất nhiều người biết đến. Cá nhân sử dụng Telegram từ nhiều năm về trước, ngay từ lần đầu tiên dùng, Telegram đã chiếm trọn cảm tình vì giao diện đơn giản, tập trung vào gọi điện, nhắn tin, nhanh và hỗ trợ đa nền tảng.

Ngoài gọi điện, nhắn tin trao đổi đôi bên, Telegram còn có chức năng trò chuyện qua Nhóm (Group) hoặc Kênh (Channel). Group thì quá quen thuộc rồi, thêm nhiều người vào cuộc hội thoại để cùng nhau trò truyện. Còn Channel là nơi một người nói, vạn người nghe, tham gia vào một kênh để liên tục cập nhật thông tin mới nhất từ người chủ của kênh đó.

Một điều đặc biệt ở Telegram mà nhiều ứng dụng nhắn tin khác không có là hỗ trợ API. Tức là thay vì trò chuyện trực tiếp qua ứng dụng, có thể gọi API để tương tác với cuộc hội thoại, thậm chí là cả Grop hoặc Channel. Không quá ngạc nhiên khi Telegram sản sinh ra rất nhiều con "BOT" - khái niệm để chỉ người dùng không phải là người thật, mà chỉ được lập trình để thực hiện một tác vụ nào đó.

Là một ứng dụng nhắn tin miễn phí, hỗ trợ API, nhanh, không giới hạn dung lượng. Nếu có thể "biến" Telegram thành một kênh thông báo lỗi, theo dõi hệ thống, hay bất kỳ thông tin gì muốn gửi đi ngay lập tức cho nhiều người thì thật là hữu ích. Thật vậy, ngay từ những ngày đầu lập trình tôi đã tham gia vào nhiều hệ thống có sử dụng cảnh báo thông qua Telegram. Vì thế hôm nay, chúng ta hãy cùng nhau tìm hiểu cách tận dụng Telegram trở thành một kênh gửi nhận thông báo tức thì nhé.

Channel và BOT trong Telegram

Như đã nói Telegram có sẵn API và tài liệu cho việc tích hợp. Bạn đọc tham khảo Telegram APIs. Trong mục này, đáng chú ý là phần Telegram Bot API. Bởi vì sử dụng BOT là cách nhanh nhất để tương tác với Group hoặc Channel. Về cơ bản, bạn có thể điều khiển được BOT thông qua API để gửi tin nhắn. Nhưng để BOT gửi được tin nhắn, trước tiên phải thêm nó vào một nhóm chat hoặc kênh.

BOT có vai trò 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. Thông thường trong hệ thống cảnh báo chỉ cần một người nói và nhiều người nghe, điều này rất phù hợp với tính chất của Channel trong Telegram. Chỉ cần tạo một kênh, đặt tên cho nó, thêm tất cả những người muốn nhận thông báo nào, thêm BOT vào, cho nó quyền gửi tin nhắn và bắt đầu viết mã để BOT tự động gửi thông báo vào kênh.

Các bước thực hiện

Các bước thực hiện rất đơn giản. Bạn cần có một tài khoản Telegram.

Đầu tiên cần phải tạo ra một con BOT. Bấm vào @BotFather, chọn "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, sao chép lại cất ở đâu đó.

Telegram BOT token

Tiếp theo 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 > Chọn BOT vừa tạo.

Tiếp theo cần lấy được id của kênh bằng cách vào Channel > Edit > Invite Links > Sao chép lại Invite Link.

Lấy Invite Link

Gửi địa chỉ vừa sao chép vào @username_to_id_bot để xem 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

id-1001828347283.

Vậy là xong. Bây giờ hãy thử gọi API sendMessage thử xem.

$ 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

Tạo một hàm sendMessage để dùng trong dự á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",
    }
  });
}

Giới hạn API

Vì là một dịch vụ nhắn tin cho nên Telegram có một số giới hạn đối với BOT đối với API. Ví dụ như mỗi tài khoản người dùng không thể tạo quá 20 BOTs. Tránh gửi hơn 1 tin nhắn trong vòng 1 giây, tránh gửi quá 20 tin nhắn mỗi phút đến cùng một nhóm hoặc kênh...

Để biết thêm thông tin chi tiết, bạn đọc tham khảo Bots FAQ hoặc Telegram Limits.

Cao cấp
Hello

Bí mật ngăn xếp của Blog

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, hãy bấm vào ngay!

Là một lập trình viên, bạn có tò mò về bí mật công nghệ hay những khoản nợ kỹ thuật về trang blog này? Tất cả bí mật sẽ được bật mí ngay bài viết dưới đây. Còn chờ đợi gì nữa, 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 😄