5

Trước tiên, tôi muốn lưu ý rằng tôi không muốn yêu cầu quyền mở rộng offline_access. Nó có lý do nhưng đây không phải là nó.Làm cách nào để nhận mã thông báo truy cập mới sau khi hết hạn mà không cần tải lại trang?

Tôi đang tạo ứng dụng html5 bằng API Javascript Facebook. Người dùng ở trên một trang duy nhất trong một thời gian dài chơi trò chơi. Tôi nhận được một mã thông báo truy cập ở đầu luồng với FB.getLoginStatus nhưng mã thông báo này hết hạn tại một số điểm và vì vậy tôi không thể truy vấn Facebook cho người dùng.

Tôi đã thử gọi lại FB.getLoginStatus khi mã thông báo đầu tiên không thành công nhưng điều này dường như không cho tôi mã thông báo truy cập mới.

Là cách duy nhất để tải lại trang? Loại hút vì trạng thái của người dùng bị gián đoạn.

Trả lời

4

FB.getLoginStatus sẽ xác thực lại người dùng vào ứng dụng của bạn và sẽ cung cấp cho bạn mã thông báo truy cập mới để làm việc. Bạn sẽ có thể nhận mã thông báo mới từ response.authResponse.accessToken.

Bạn có nhận được bất kỳ lỗi cụ thể nào sau khi mã thông báo đầu tiên không thành công không?

+0

Cảm ơn Jordan. Có cách nào để làm mới điều này bằng tay trước không? Nói 15 phút một lần? Tôi có một setInterval gọi FB.getLoginStatus vài phút một lần nhưng tôi nghĩ rằng những gì phải xảy ra là người dùng đang gọi với token đã hết hạn trước khi FB.getLoginStatus được gọi với khóa hết hạn. Có khả năng để có được một cái mới trước sẽ là một trợ giúp lớn. –

+1

Ứng dụng của bạn có lẽ nên làm là xử lý bất kỳ ngoại lệ nào bằng cách cố gắng xác thực lại với FB.getLoginStatus, thay vì cố gắng áp dụng nó. Logic sẽ là: cố gắng tương tác FB. Nếu tương tác thành công, tuyệt vời. Nếu tương tác không thành công, hãy thử FB.getLoginStatus() để xác thực lại, rồi thử lại tương tác FB. – Jordan

+0

Roger. Sẽ cung cấp cho một thử. Cảm ơn. –

Các vấn đề liên quan