Bot Telegram của bạn là một chuỗi ký tự, và ba quy tắc quyết định những gì nó có thể làm.
BotFather trả lại một token trong khoảng một phút. Điều cản trở hầu hết các bot đầu tiên không phải là đoạn code tiếp theo: mà là chế độ riêng tư trong nhóm, một tin nhắn mỗi giây trong một cuộc trò chuyện, và khoảng ba mươi tin nhắn mỗi giây khi gửi hàng loạt. Cả ba điều này đều được công bố công khai.
Michael ChenHai cụm từ tìm kiếm nằm ngay cạnh nhau mỗi khi ai đó tra cứu vấn đề này: token và chat id. Sự kết hợp đó chính là toàn bộ vấn đề của người mới ở dạng thu nhỏ. Người ta hiểu được cái đầu tiên trong một phút, rồi phát hiện ra bot chẳng có nơi nào để nói chuyện.
Vì vậy, đây không phải là bài so sánh framework. Đây là token là gì, điều gì chặn bot lại khi bạn đã có nó, và ba giới hạn được công bố quyết định hình dạng của bất cứ thứ gì bạn xây dựng.
BotFather thực sự đưa cho bạn thứ gì
Mở cuộc trò chuyện với bot tạo bot của chính Telegram, gửi /newbot, trả lời hai câu hỏi. Tài liệu của Telegram mô tả chính xác quá trình này: nó hỏi tên và username, sau đó tạo ra một token xác thực.
Token đó chính là bot. Nó là một chuỗi ký tự có tiền tố số và một phần bí mật dài sau dấu hai chấm, và Telegram dùng chính những từ này để mô tả: nó ủy quyền cho bot và là yêu cầu bắt buộc để gửi yêu cầu đến API. Không có mật khẩu riêng, không có tài khoản để đăng nhập, không có thông tin xác thực thứ hai. Bất kỳ ai giữ chuỗi ký tự đó đều kiểm soát hoàn toàn bot, đó là lý do vì sao nó phải nằm trong biến môi trường và không bao giờ được đặt trong kho lưu trữ mã, ảnh chụp màn hình hay cuộc trò chuyện nhóm.
Ở thời điểm đó, bạn có một bot hoạt động nhưng chẳng làm gì cả, vì không có gì đang lắng nghe. Đó là trạng thái đúng đắn để ở trong, và đó cũng là nơi công việc thực sự bắt đầu.
Quy tắc một: trong nhóm, bot của bạn bị "điếc" một cách có chủ đích
Đây là báo cáo "bot của tôi bị hỏng" phổ biến nhất, và đó là hành vi được ghi nhận trong tài liệu chứ không phải lỗi. Telegram nêu rõ rằng theo mặc định, tất cả bot được thêm vào nhóm đều chạy ở chế độ riêng tư và chỉ nhìn thấy các tin nhắn và lệnh liên quan.
Vì vậy, một bot ngồi trong nhóm không nhận được các cuộc trò chuyện thông thường. Nó nhận các tin nhắn nhắc đến nó và các lệnh, và đó là thiết kế có chủ đích. Nếu bạn đang xây dựng một bot kiểm duyệt cần đọc mọi thứ, bạn thay đổi cài đặt đó qua BotFather một cách có chủ ý. Nếu bạn đang xây dựng một trợ lý trả lời câu hỏi, hãy để nguyên: mặc định là chế độ bảo vệ quyền riêng tư và nó cũng giúp bạn tránh một lượng lớn cập nhật không liên quan.
Một quy tắc liên quan khiến những người xây dựng quy trình bot-to-bot vấp phải: Telegram đã quyết định rằng bot sẽ không nhìn thấy tin nhắn từ các bot khác, bất kể chế độ nào, cụ thể là để ngăn chúng rơi vào vòng lặp. Hai bot của chính bạn không thể nói chuyện trực tiếp với nhau.
Quy tắc hai: một tin nhắn mỗi giây, cho mỗi cuộc trò chuyện
Hướng dẫn của Telegram rất trực tiếp. Trong một cuộc trò chuyện duy nhất, tránh gửi nhiều hơn một tin nhắn mỗi giây. Nó được diễn đạt như một lời khuyên thay vì một bức tường cứng nhắc, điều này trong thực tế có nghĩa là giới hạn được thực thi bằng cách khiến bot của bạn chờ đợi thay vì từ chối thẳng thừng.
Hệ quả thiết kế đáng để tiếp thu sớm: một bot trả lời câu hỏi bằng sáu tin nhắn ngắn sẽ chậm gấp sáu lần đối với người dùng đó so với một bot trả lời bằng một tin nhắn duy nhất, và người dùng sẽ cảm nhận được điều đó. Hãy soạn một câu trả lời thay vì kể lể dài dòng.
Quy tắc ba: ba mươi tin nhắn mỗi giây, khi gửi hàng loạt, và phép tính theo sau
Đối với thông báo hàng loạt, Telegram nêu rằng bot không thể phát sóng nhiều hơn khoảng ba mươi tin nhắn mỗi giây.
Hãy làm phép tính trước khi thiết kế tính năng phát sóng, vì nó không hề dễ dàng. Mười nghìn người đăng ký với tốc độ ba mươi tin nhắn mỗi giây là hơn năm phút rưỡi gửi liên tục, giả sử không có gì thất bại và không có gì phải thử lại. Một trăm nghìn người là gần một giờ. Bất kỳ bot nào có mục đích thông báo điều gì đó đến một danh sách lớn thực chất là một hàng đợi với một bot ở cuối, và xây dựng nó như một vòng lặp đơn giản sẽ tạo ra một buổi phát sóng vẫn còn đang gửi đi rất lâu sau khi tin tức đã cũ.
Các giải pháp thực tế là những giải pháp quen thuộc: gửi đến một kênh và để người đăng ký tự kéo, thay vì đẩy đến từng người dùng riêng lẻ; hoặc chấp nhận hàng đợi và hiển thị tiến trình. Hãy lựa chọn một cách có chủ đích, ngay từ đầu.
Một phiên bản đầu tiên cố ý nhỏ gọn
Telegram yêu cầu tất cả nhà phát triển hỗ trợ một bộ lệnh cơ bản nhỏ, và đặt /start ở đầu danh sách như lệnh bắt đầu tương tác với người dùng. Nó cũng yêu cầu bạn phản hồi tất cả tin nhắn được gửi đến bot của mình. Giữa hai dòng đó, bạn đã có một đặc tả cho phiên bản đầu tiên.
- Trả lời
/startbằng một câu giới thiệu ngắn về việc bot làm gì. Đó là điều đầu tiên mọi người dùng nhìn thấy và là màn hình duy nhất bạn có thể chắc chắn. - Khớp một vài câu hỏi lặp lại thực sự, lấy từ những tin nhắn bạn đang tự trả lời bằng tay thay vì từ một danh sách đoán mò.
- Không bao giờ im lặng. Đầu vào không nhận diện được nên nhận được phản hồi kiểu "sẽ có người theo dõi", vì một bot không nói gì trông như bị hỏng, còn một bot nói "Tôi không hiểu điều đó, sẽ có người liên hệ lại với bạn" trông như đang hoạt động.
Làm cho vòng lặp đó đáng tin cậy, và mọi thứ sau nó — bài đăng theo lịch, kiểm duyệt nhóm, tra cứu cơ sở dữ liệu — chỉ là phần bổ sung chứ không phải xây dựng lại từ đầu.
Hai thứ bạn không thể mua, và một thứ bạn có thể
Một lưu ý về những gì thị trường này có và không có, vì đó là câu hỏi hiển nhiên trên một trang web như thế này.
Không có bot nào để mua. Tìm kiếm tất cả 16.735 danh sách đang hoạt động với từ khóa đó trong tiêu đề trả về ba kết quả, và cả ba đều là thứ khác: một trò chơi console có chữ "Bot" trong tên, một danh sách Telegram nơi bot là cơ chế giao hàng, và một danh sách Facebook nơi người bán chuyển quyền quản trị qua một bot. Không ai bán bot ở đây, vì token miễn phí và chỉ mất một phút.
Thứ bạn có thể cần là một tài khoản Telegram thông thường để kiểm thử, để bạn không phải thêm số cá nhân của mình vào một bot vẫn đang gỡ lỗi, và một số để đăng ký nó. Cả hai đều có sẵn: Tài khoản Telegram và số xác minh SMS. Bảo hành trên kệ tài khoản trung bình là mười hai giờ, vì vậy hãy kiểm tra đăng nhập ngay khi nhận được thay vì để đến cuối tuần.
Một điểm bất đối xứng đáng biết nếu bạn đang xây dựng thứ gì đó hướng đến công chúng: việc xác minh của Telegram áp dụng cho kênh, bot và nhóm công khai. Bot của bạn nằm trong danh sách đủ điều kiện. Tài khoản bạn vận hành nó thì không.
Tài liệu tham khảo nên mở trong khi bạn xây dựng là tài liệu Bot API của chính Telegram. Mọi thứ được trích dẫn trên trang này đều từ đó, và đó là nguồn duy nhất luôn được cập nhật.
