Mã truy cập được tạo vào cuối quá trình đăng nhập. Mã truy cập này được chuyển cùng với mọi lệnh gọi API để chứng minh rằng lệnh gọi đó là do một người cụ thể thực hiện từ ứng dụng nào đó.
Facebook SDK dành cho JavaScript sẽ tự động xử lý việc lưu trữ mã truy cập và theo dõi trạng thái đăng nhập trong trình duyệt. Vì vậy, bạn không cần lưu trữ mã truy cập trong chính trình duyệt đó.
Tuy nhiên, khuôn mẫu chung là lấy mã truy cập và chuyển lại cho máy chủ, sau đó máy chủ sẽ thực hiện lệnh gọi thay mặt cho một người. Để lấy mã từ trình duyệt, bạn có thể sử dụng đối tượng response
được trả về qua FB.getLoginStatus()
:
FB.getLoginStatus(function(response) { if (response.status === 'connected') { console.log(response.authResponse.accessToken); } });
Mã này là một chuỗi mờ có độ dài thay đổi.
Ngoài ra, bạn cần lưu ý rằng mã truy cập được tạo trong trình duyệt thường có thời hạn chỉ vài giờ và tự động được JavaScript SDK làm mới. Nếu đang thực hiện lệnh gọi từ máy chủ, bạn cần tạo một mã dài hạn - được nêu chi tiết trong tài liệu về mã truy cập của chúng tôi.
Thông thường, các ứng dụng cần xác nhận rằng phản hồi từ hộp thoại Đăng nhập là do chính người bắt đầu hộp thoại đó thực hiện. Nếu bạn đang sử dụng JavaScript SDK của Facebook, SDK đó sẽ tự động thực hiện những hoạt động kiểm tra này nên bạn không cần làm gì cả, giả định rằng bạn chỉ đang thực hiện lệnh gọi từ trình duyệt.
Nếu quyết định gửi trả lại mã cho máy chủ, bạn cần đảm bảo xác minh lại mã truy cập sau khi mã này đến máy chủ. Quy trình xác minh lại mã được nêu trong tài liệu về việc tạo quy trình đăng nhập theo cách thủ công của chúng tôi. Bạn cần xác minh rằng app_id
và user_id
phù hợp với điều bạn mong đợi từ điểm cuối gỡ lỗi của mã truy cập.
Tại thời điểm này trong quy trình, người này đã được xác thực và đăng nhập. Ứng dụng hiện đã sẵn sàng thực hiện lệnh gọi API thay mặt họ từ trình duyệt. Trong trình duyệt, cách dễ nhất để thực hiện việc đó là sử dụng lệnh gọi FB.api()
. FB.api()
sẽ tự động thêm mã truy cập vào lệnh gọi.
Mã này:
FB.api('/me', function(response) { console.log(JSON.stringify(response)); });
Sẽ trả về mảng có id và tên:
{ "id":"101540562372987329832845483", "name":"Bob Smith" }
Nếu đang thực hiện lệnh gọi phía máy chủ với mã truy cập, bạn có thể sử dụng SDK trên máy chủ để thực hiện các lệnh gọi tương tự. Nhiều người sử dụng PHP để tạo ứng dụng web. Bạn có thể xem một số ví dụ minh họa cách thực hiện lệnh gọi API phía máy chủ trong tài liệu về PHP SDK.
Mọi người có thể gỡ cài đặt ứng dụng qua Facebook.com mà không cần tương tác với chính ứng dụng. Để hỗ trợ các ứng dụng phát hiện khi điều này xảy ra, chúng tôi cho phép các ứng dụng cung cấp URL gọi lại bỏ ủy quyền. URL này sẽ được gọi mỗi khi trường hợp này xảy ra.
Bạn có thể kích hoạt lệnh gọi lại bỏ ủy quyền qua Bảng điều khiển ứng dụng.