2012-10-25 19 views
5

以前のバージョンのFacebook SDKでは、ユーザーがまだトークンを使用してサインインしているかどうかを確認できました。新しい3.0バージョンでは、ユーザーがまだSSOでログインしているかどうかを確認するためにopenSession()を呼び出す以外の方法はありません。しかし、openSession()は、ユーザーが保存されていない場合に自動的にログインを呼び出すので、私はそれを望んでいません。私はSSOをチェックしたいだけです。これはどうすればいいですか?Facebook android sdk 3.0 SSO

+0

私もこれを必要としています。それを見つけることができません。 WTF? –

+2

Sessionを作成すると、session.getStateを呼び出すことによってSessionオブジェクトの状態を確認できます。状態がCREATED_TOKEN_LOADED状態の場合は、保存された有効なトークンがあることを意味します。ユーザーインタラクション –

+4

また、javadocによると、ユーザーの操作を必要としない場合にのみセッションを開く、Session.openActiveSession(コンテキストコンテキスト)を呼び出すことができます。 –

答えて

8

は、私は私のアプリで私のために、ユーザーがまだログインして(あるいは、実際にアクティブなセッションを持っている)されたかどうかを確認するためのヘルパー関数を作った:

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

それは私のためには機能しません、私はセッション中に{セッションステート:クローズドトークン:{AccessTokenトークン:ACCESS_TOKEN_REMOVEDパーミッション:[]}、appId:234242323423434}を取得し続ける " – Nativ

+0

いくつかの人々がこれに問題があるのを見ることができます。まず、あなたのキーがFBアプリで正しいことを確認してください。私はこれにいくつか問題があることを思い出します。私のために働く私の現在の流れは1. check isActive();いいえ? 2. openSession()を呼び出します。3. error&session!= nullの場合 - session.closeAndClearTokenInformation(); –

+0

どのようなシナリオでopenActiveSessionFromCacheを使用しますか –

3

また、javadocによると、ユーザーの操作を必要としない場合にのみセッションを開きますSession.openActiveSession(コンテキストコンテキスト)を呼び出すことができます。 - 明李

関連する問題