2012-10-25 49 views
5

Trong các phiên bản trước của SDK Facebook, chúng tôi có thể kiểm tra xem người dùng vẫn đăng nhập bằng cách sử dụng mã thông báo. Trong phiên bản 3.0 mới, tôi không thể tìm thấy cách nào khác ngoài cách gọi openSession() để kiểm tra xem người dùng vẫn đang đăng nhập với SSO. Nhưng openSession() sẽ tự động gọi đăng nhập nếu người dùng không được lưu và tôi không muốn điều đó. Tôi chỉ muốn kiểm tra SSO. Làm thế nào để tôi làm điều này?Facebook sdk android 3.0 SSO

+0

Tôi cần cái này quá. Không thể tìm thấy nó. WTF? –

+2

Khi bạn tạo phiên, bạn có thể kiểm tra trạng thái của đối tượng Session bằng cách gọi session.getState và nếu trạng thái ở trạng thái CREATED_TOKEN_LOADED, điều đó có nghĩa là có mã thông báo đã lưu và hợp lệ và bạn có thể gọi trực tiếp() tương tác người dùng. –

+4

Hoặc, bạn có thể gọi Session.openActiveSession (ngữ cảnh bối cảnh), theo javadocs, sẽ chỉ mở phiên nếu nó không yêu cầu tương tác người dùng. –

Trả lời

8

tôi đã thực hiện một chức năng helper đó để kiểm tra xem người dùng vẫn còn đăng nhập (hoặc thực sự có một phiên tích cực) đối với tôi trong ứng dụng của tôi:

public static boolean isActive() { 
    Session session = Session.getActiveSession(); 
    if (session == null) { 
     return false; 
    } 
    return session.isOpened(); 
} 
+0

Nó không hoạt động đối với tôi, tôi tiếp tục nhận được "{Session state: CLOSED, token: {Mã thông báo AccessToken: ACCESS_TOKEN_REMOVED quyền: []}, appId: 234242323423434}" trong phiên – Nativ

+0

I có thể thấy một số người gặp vấn đề với điều này. Trước hết hãy chắc chắn rằng các phím của bạn là chính xác trong ứng dụng FB. Tôi nhớ có một số vấn đề với điều này. Dòng chảy hiện tại của tôi làm việc cho tôi là 1. check isActive(); Không? 2. gọi openSession() 3. nếu lỗi & phiên! = Null -> session.closeAndClearTokenInformation(); –

+0

Trong kịch bản nào bạn sẽ sử dụng openActiveSessionFromCache –

3

Hoặc, bạn có thể gọi Session.openActiveSession (ngữ cảnh bối cảnh), theo javadocs, sẽ chỉ mở phiên nếu nó không yêu cầu tương tác người dùng. - Ming Li

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