English version: Secret of Facebook Friend Ranking - by Karmi Phúc.
Update 2016-02-07: chỉnh lại thông số của bookmarklet vì Facebook thay đổi thuật toán.
Để ý vụ này lâu rồi, nhưng mãi mới viết được nên lời.
Thời gian gần đây, mình thấy nhiều bạn bè trên Facebook thường xài một ứng dụng FB (quên tên mất tiêu) để xem xếp hạng bạn bè hay xem các “người ái mộ thầm lặng” (tiếng Việt mĩ miều là thế nhưng tiếng Anh hay gọi là stalkers, kiểu như kẻ rình rập).
Dữ liệu này thật ra đã được Facebook tính toán và xếp hạng trước, dựa trên mức độ tương tác giữa người dùng và bạn bè: like, comment, share, xem profile, kết bạn… Đây là cơ chế giúp Facebook định giá trị cho các mối quan hệ của người dùng. Dù bạn chắc chắn sẽ biết những bạn bè mình thường xuyên tương tác, nhưng danh sách thật mà Facebook tổng hợp được với các giá trị trọng số cụ thể sẽ làm bạn “ngất ngây gà tây” đấy.
Đối với các kết quả tìm kiếm bằng Facebook Search, dữ liệu này được xem là thang đo để sắp xếp thứ tự từng kết quả.
Có thể bạn sẽ nhận thấy, dù bạn gõ nhanh thế nào thì Facebook cũng trả về kết quả gợi ý rất nhanh chóng. Thuật toán tối ưu?! Server cực mạnh?! Mấu chốt nhằm tăng tốc độ và cải thiện trải nghiệm người dùng chính là lưu trữ sẵn ở máy tính người dùng. Ngay khi người dùng click vào khung Search, khung Status, hay khung Comments thì Facebook sẽ tải về trước một file gọi là first_degree.php.
Giải thích về First Degree:
Mọi thông tin trên Facebook được lưu trữ ở dạng đồ thị (Open Graph), và mỗi người dùng Facebook là một trong những đỉnh của đồ thị đó (vẫn còn có những loại đỉnh khác như pages, events, media). Giữa các đỉnh sẽ có các cạnh, thể hiện sự tương tác giữa chúng. File first_degree.php của Facebook sẽ trả về thông tin các đỉnh có kết nối trực tiếp với đỉnh của người dùng: đó có thể là bạn bè thân thuộc, người bạn yêu thầm, các FB pages bạn vừa like hay các events gần nhất có liên quan tới bạn.
Làm thế nào để xem được trọn bộ dữ liệu này?
- Nếu bạn là lập trình viên, và có biết sử dụng Chrome DevTools hay Firebug thì đơn giản chỉ cần bật 1 trong 2 tiện ích đó rồi xem ở tab Console (nhớ chọn theo dõi các XHR Requests để xem được các AJAX requests).
- Nếu bạn không là lập trình viên, hay đơn giản không biết mấy cái chữ tiếng Anh ở trên là gì thì hãy làm theo 2 bước sau:
1. Lấy Facebook ID của bạn theo 3 bước sau:
- Truy cập profile Facebook của bạn: https://www.facebook.com/me
- Bấm vào ảnh avatar của bạn: https://i.imgur.com/V36m9xK.png
- Tìm trên thanh địa chỉ một đoạn ký tự bắt đầu bởi từ khóa
&set=và kết thúc bởi từ khóa&type=. Để ý đoạn ký tự nằm giữa 2 từ khóa đó. Facebook ID của bạn là đoạn chữ số nằm giữa dấu chấm cuối cùng và từ khóa&type=: https://i.imgur.com/AMgzcaK.png
2. Copy Facebook ID ở trên và thay vào đoạn {FB_ID_CỦA_BẠN_Ở_BƯỚC_1} ở bên dưới. Sau đó mở bằng trình duyệt: https://www.facebook.com/ajax/typeahead/first_degree.php?filter[0]=user&__a=1&viewer={FB_ID_CỦA_BẠN_Ở_BƯỚC_1}
Khuyến cáo: Sau khi bấm vào link thứ 2 thì hãy chuẩn bị tinh thần trước, vì Facebook sẽ quăng một đống toàn chữ và số vào mặt bạn (gọi là dữ liệu JSON). Nếu bạn là dân lập trình web thì sẽ hiểu ý nghĩa của đống dữ liệu JSON ấy. Còn không thì hãy copy dữ liệu và đưa cho 1 lập trình viên để anh ta xử lý giúp bạn.
- Nếu bạn thấy cách trên khó chịu và muốn “bấm phát thấy ngay” thì hãy dùng bookmarklet Facebook Friends Rankings - thanks Jeremy Keesh (mở link, rồi dùng chuột kéo link bookmarklet vào thanh bookmark trên trình duyệt; nếu không được thì copy vào trình duyệt https://karmiphuc.github.io/fb-friends-bookmarklet/ )
Tác giả: Karmi Phúc
Tham khảo:




3 thoughts on “Xếp hạng bạn bè trên Facebook”