paint-brush
Có một Tay cầm Mastodon bất biếntừ tác giả@nfrankel
1,317 lượt đọc
1,317 lượt đọc

Có một Tay cầm Mastodon bất biến

từ tác giả Nicolas Fränkel4m2022/12/22
Read on Terminal Reader

dài quá đọc không nổi

Mastodon khác với Twitter ở chỗ nó là một liên kết các máy chủ Mastodon, chạy độc lập và kết nối với nhau. Vấn đề đầu tiên khi một người muốn tạo tài khoản Mastodon là chọn đúng phiên bản. Quá trình này dựa trên [Đặc tả WebFinger](https://www.rfc-editor.org/rfc/ rfc7033)
featured image - Có một Tay cầm Mastodon bất biến
Nicolas Fränkel HackerNoon profile picture

Vẫn còn phải xem liệu Twitter có sụp đổ hay không, mặc dù một số dấu hiệu đang cho thấy. Dù chuyện gì xảy ra, tôi vẫn tiếp tục đầu tư một chút vào Mastodon. Tuần trước, tôi đã trình bày cách đồng bộ nội dung của một người giữa Twitter và Mastodon.


Tuần này, tôi đã thiết lập một điều khiển Mastodon trên miền của mình để chuyển hướng đến trang hồ sơ của tôi: Tôi muốn giải thích cách tôi đạt được điều đó và những vấn đề tôi vẫn đang gặp phải.

voi răng mấu 101

Mastodon khác với Twitter ở chỗ nó không tập trung: đó là một liên kết các máy chủ Mastodon, chạy độc lập và được kết nối với nhau - Fediverse . Nói chính xác, Fediverse không chỉ là các nút Mastodon, nhưng chúng ta đừng đi xa đến thế.


Vấn đề đầu tiên khi một người muốn tạo tài khoản Mastodon là chọn đúng phiên bản. Lựa chọn đầu tiên của tôi là mastodon.social , nhưng nó đã bị đóng đối với các tài khoản mới vào thời điểm đó. Tôi để mắt đến mastodon.top không vì lý do gì ngoài việc nó nằm trong danh sách đề xuất và là tiếng Pháp.


Việc lựa chọn máy chủ không quá quan trọng vì bạn luôn có thể chuyển tài khoản của mình sang phiên bản khác và giữ người theo dõi của mình. Lưu ý rằng bạn sẽ để lại (và mất) nội dung của mình trên máy chủ ban đầu. Trong mọi trường hợp, hồ sơ của bạn được đặt tên bởi máy chủ; do đó, tay cầm của bạn thay đổi.


Hiện tại, tôi là @[email protected] . Nhưng, có lẽ tôi sẽ tham gia cùng bạn bè của mình tại foojay.social hoặc thành lập frankel.social của riêng mình trong tương lai? Trong cả hai trường hợp, tôi sẽ cần thay đổi hậu tố của tay cầm của mình.


Tuy nhiên, tôi xuất bản tên miền của mình trên nhiều trang web và không muốn quên bất kỳ cập nhật nào khi di chuyển. Do đó, tôi yêu cầu handle phải là immutable .


Tôi đã đề cập ở trên rằng các nút Mastodon thuộc về một mạng có tên là Fediverse. Các nút Fediverse có thể được kết nối thông qua một số giao thức khác nhau . Các nút voi răng mấu sử dụng ActivityPub . Bên dưới, ActivityPub dựa vào WebFinger để tìm vị trí chính xác của một tay cầm.

WebNgón tay

Mastodon cần dịch @[email protected] thành https://mastodon.top/web/@frankel . Bản dịch phải diễn ra trên mọi phiên bản Mastodon, bất kể miền của nó. Quá trình này dựa trên đặc tả WebFinger , hay còn gọi là RFC 7033:


WebFinger như được mô tả trong RFC 7033 là một thông số kỹ thuật xác định phương pháp phân giải các liên kết tới tài nguyên , chỉ được cung cấp một URI trên một máy chủ cụ thể. Điều này cho phép mọi người tra cứu vị trí của tài nguyên mà không cần phải biết trước vị trí chính xác của nó; ví dụ: qua email hoặc số điện thoại. Việc tra cứu này hướng đến điểm cuối /.well-known/webfinger và một tham số truy vấn resource được chuyển cùng với việc tra cứu. URI tài nguyên được sử dụng với Mastodon là acct: URI như được mô tả trong RFC 7565 , với tên người dùng của một cấu hình được lưu trữ trên một miền cụ thể.


-- WebFinger là gì và tại sao nó được sử dụng?


Theo như trên, khi tìm kiếm hồ sơ của tôi, truy vấn như sau: https://mastodon.top/.well-known/webfinger?resource=acct:[email protected] . Bạn có thể kiểm tra bằng cách truy cập phiên bản Mastodon mà bạn đã đăng nhập, tìm kiếm tên miền của tôi và xem lưu lượng truy cập thông qua các công cụ dành cho nhà phát triển của trình duyệt ưa thích của bạn.


Câu trả lời như sau:

 { "subject":"acct:[email protected]", "aliases":[ "https://mastodon.top/@frankel", #1 "https://mastodon.top/users/frankel" #1 ], "links":[ { "rel":"http://webfinger.net/rel/profile-page", #2 "type":"text/html", "href":"https://mastodon.top/@frankel" }, { "rel":"self", "type":"application/activity+json", "href":"https://mastodon.top/users/frankel" }, { "rel":"http://ostatus.org/schema/1.0/subscribe", "template":"https://mastodon.top/authorize_interaction?uri={uri}" } ] }
  1. URL tới hồ sơ
  2. rel cho Mastodon

Tay cầm Mastodon bất biến

Nó sẽ hoạt động nếu tôi trả lại cùng một phản hồi cho cùng một truy vấn trên một miền tùy chỉnh. Đó là điều tôi đã làm: https://blog.frankel.ch/.well-known/webfinger?resource=acct:[email protected] . Vì đó là trang tĩnh và tôi là tài khoản duy nhất nên chúng tôi không cần tham số truy vấn: https://blog.frankel.ch/.well-known/webfinger .


Với điều này, tôi có thể tìm kiếm trên https://mastodon.top với @[email protected] (hoặc bất kỳ tên miền nào @frankel.ch ) và nó trả về kết quả như mong đợi:




Tôi đã kiểm tra các trường hợp khác, ví dụ: https://mastodon.social/ , nhưng nó không hoạt động. Lý do rất đơn giản. Khi tìm kiếm trên phiên bản bạn đã đăng nhập, XHR là https://mastodon.top/api/v2/search?q=@[email protected]&resolve=true&limit=5 ; khi không, đó là https://mastodon.top/api/v2/search?q=@[email protected]&resolve=false&limit=5 .


Kết luận: bạn chỉ có thể xử lý truy vấn trên cùng một phiên bản khi bạn chưa được xác thực.


Tài liệu xác nhận rằng nếu resolve pháp là false , thì truy vấn sẽ không cố sử dụng WebFinger:


resolve


Boolean. Thử tra cứu WebFinger? Mặc định là sai.


-- Thực hiện tìm kiếm


Phần kết luận

Lý thuyết đằng sau Mastodon và WebFinger rất hấp dẫn. Tôi đã quản lý để định cấu hình xử lý voi răng mấu bất biến của mình @[email protected] . Đó là cách tôi có thể giao tiếp với những người theo dõi tiềm năng: nếu tôi chuyển sang một máy chủ khác, tôi sẽ cập nhật tọa độ mới của mình trên webfinger .


Thủ thuật hiệu quả vì tôi là người dùng Mastodon duy nhất trên miền của mình. Nếu bạn có nhiều, bạn sẽ cần vượt ra ngoài trang tĩnh để trả về một ID khác tùy thuộc vào tham số acct: phần còn lại giữ nguyên.


Để đi xa hơn:




Được xuất bản lần đầu tại A Java Geek vào ngày 18 tháng 12 năm 2022


Ảnh của Shashank Rana trên Bapt