Trong bản beta của Telegram dành cho macOS đã xuất hiện mã QR hồ sơ với họa tiết quà tặng và liên kết loại bỏ phí tin nhắn.
Trong bản dựng beta 13.0.283320 của Telegram dành cho macOS, phát hành vào ngày 15 tháng 10, một màn hình mã QR hồ sơ mới đã xuất hiện. Trong mã nguồn, nó được gọi là QR-studio: nền và họa tiết xung quanh mã được tạo từ một món quà sưu tầm, một biểu tượng cảm xúc Premium hoặc một màu sắc. Trên cùng màn hình đó, có một công tắc "Remove message fee": nó biến mã QR và liên kết từ đó thành một "thẻ miễn phí" vượt qua phí tin nhắn — bất kỳ ai truy cập qua liên kết đó đều có thể nhắn tin cho chủ sở hữu miễn phí. Điều này áp dụng cho những người thu phí Stars cho tin nhắn đến và những người nhắn tin cho họ. Hiện tại, các tính năng này chỉ có trong bản beta dành cho Mac và chưa có trong lược đồ API công khai.
Những gì đã xuất hiện trong bản dựng 13.0.283320
Bản beta macOS được phân phối qua nguồn cấp dữ liệu cập nhật mac-updates.telegram.org. Vào ngày 15 tháng 10, ba bản dựng liên tiếp đã được phát hành: 283318 vào buổi sáng, 283320 và 283321 vào buổi chiều. Giao diện của cả hai tính năng xuất hiện trong bản 283320 — mô-đun QrStudioUI và tệp lõi NoPaidMessagesToken. Các mô tả kiểu API cho liên kết miễn phí đã có trong client từ bản 283318 buổi sáng, nhưng không có màn hình nào để kích hoạt chúng. Bản dựng 283321 được phát hành bốn mươi phút sau bản 283320 và giữ lại cả hai tính năng.
Các văn bản trên màn hình mới trong bản beta được viết trực tiếp bằng tiếng Anh trong mã nguồn, chúng chưa được đưa lên nền tảng dịch thuật. Ngoại lệ là hai dòng tin nhắn dịch vụ trong cuộc trò chuyện về liên kết miễn phí: chúng đã được thêm vào tệp bản địa hóa của cùng bản dựng đó.
Liên kết miễn phí tin nhắn hoạt động như thế nào
Trong Telegram, bạn có thể đặt giá bằng Stars cho tin nhắn từ những người không có trong danh bạ. Đối với một người cụ thể, bạn có thể loại bỏ phí ngay bây giờ — thủ công, bằng cách thêm người đó vào danh sách ngoại lệ: trong lược đồ API, có phương thức account.toggleNoPaidMessagesException cho việc này. Bản beta bổ sung một cách thứ hai: ngoại lệ được cấp bằng liên kết, và bạn không cần phải thêm người trò chuyện vào danh sách bằng tay.
Tính năng này được bật bằng công tắc "Remove message fee" trên màn hình mã QR. Sau đó, mã và liên kết từ đó sẽ chứa một token — trong client, nó được gọi là noPaidMessagesToken. Người mở liên kết đó sẽ thấy "You can now message …" với tên của chủ sở hữu, và tin nhắn của họ sau đó sẽ miễn phí. Trong cuộc trò chuyện của cả hai, sẽ có một dòng tin nhắn dịch vụ: đối với chủ sở hữu — "… used your link to message you for free", đối với người truy cập — "You used …’s link to message for free".
Thời hạn của token được đặt trên cùng màn hình đó:
| Chuỗi trong bản beta | Điều gì xảy ra |
|---|---|
| "Expire after 1 minute" | mã có hiệu lực trong một phút — "This code will expire in 1 minute" |
| "This code no longer expires" | mã không có thời hạn |
| "New code created. The old one no longer works." | mã đã được tạo lại, liên kết cũ không còn hoạt động |
| "Restore message fee" | phí đã được khôi phục — "Your message fee applies again" |
Mã có thời hạn một phút, rõ ràng, được thiết kế cho các cuộc gặp mặt trực tiếp: hiển thị QR trên màn hình, cho phép quét — và sau một phút, hình ảnh được chuyển tiếp sẽ không còn mở được gì nữa. Client sẽ hiển thị thông báo "This free message link is invalid or has expired" khi gặp một liên kết đã hết hạn hoặc bị thu hồi, trong trường hợp này, máy chủ sẽ trả về lỗi NO_PAID_MESSAGES_TOKEN_INVALID.
Điều này khác gì so với liên kết "thêm vào danh bạ"
Telegram từ lâu đã có liên kết mời tạm thời để thêm vào danh bạ: trong lược đồ công khai, đó là contacts.exportContactToken, phản hồi exportedContactToken mang địa chỉ và thời hạn hiệu lực. Trong bản beta, một kiểu cặp exportedNoPaidMessagesToken và tin nhắn dịch vụ messageActionNoPaidMessagesTokenUsed đã xuất hiện bên cạnh nó. Cả hai đều không có trong lược đồ công khai của layer 230. Chúng được thiết kế theo cùng một lược đồ — máy chủ cấp một token có thời hạn, client đặt nó vào liên kết — nhưng token này không thêm vào danh bạ mà chỉ loại bỏ phí tin nhắn.
QR-studio được thiết kế như thế nào
Màn hình mã QR hồ sơ trong Telegram đã tồn tại từ lâu, trên các client di động, nó được tô màu bằng các chủ đề trò chuyện. QR-studio thay thế chúng bằng ba tab — trong mã nguồn là qr_studio_tab_gift, qr_studio_tab_emoji và qr_studio_tab_color:
- Quà tặng. Nền của món quà sưu tầm được đặt dưới mã, và biểu tượng của nó được lặp lại xung quanh — với cùng một họa tiết trang trí món quà.
- Biểu tượng cảm xúc. Họa tiết được tạo từ các biểu tượng cảm xúc Premium — các biểu tượng cảm xúc tùy chỉnh từ các gói có sẵn với Telegram Premium.
- Màu sắc. Nền từ bảng màu.
Bên cạnh đó là nút ngày và đêm: mỗi tùy chọn được vẽ ở phiên bản sáng và tối. Client không lưu trữ bộ sưu tập hình nền mà yêu cầu từ máy chủ dưới dạng danh sách shareThemeBackdrops và lưu vào bộ nhớ cache — kiểu này có một biến thể shareThemeBackdropsNotModified, mà máy chủ trả lời "danh sách không thay đổi".
Thiết kế đã chọn không được lưu trên thiết bị mà trên máy chủ, như một cài đặt tài khoản: trong lõi, đó là ShareTheme với các biến thể shareThemeGift, shareThemeEmoji, shareThemeColor và shareThemeDefault, và món quà cho nền được truyền bằng kiểu inputShareThemeGift. Điều này có nghĩa là cùng một mã QR sẽ trông giống nhau trên tất cả các thiết bị của chủ sở hữu. Thẻ đã hoàn thành có thể được xuất dưới dạng hình ảnh — trong mô-đun có một cảnh xuất riêng biệt với mã, họa tiết và nhãn dán.
Việc tạo lại mã có hoạt ảnh riêng: các lớp màn hình được gọi là QrStudioShatter, QrStudioAshLayer và QrStudioParticle. Dựa trên tên gọi, mã cũ khi được thay thế sẽ tan thành tro bụi, và một mã mới sẽ được tạo ra tại vị trí đó — đối với một mã vừa ngừng hoạt động, đây là một sự tiễn đưa chân thành.




