2012-09-26 6 views
0

튜토리얼 http://developers.facebook.com/docs/mobile/android/build/#sdk을 시도했으며 성공적으로 로그인 할 수 있습니다. 이 코드는 로그인 대화 상자를 제공합니다. 그러나 저는 이것을 활동으로 만들고 싶습니다. 왜냐하면이 활동에서 다른 작업도 수행해야하기 때문입니다. 로그인이 성공한 후 새로운 활동이 시작될 때처럼 페이스 북의 이전 상태에서 이전 (페이스 북) 활동으로 다시 돌아옵니다. 도와주세요. 감사합니다.android에서 페이스 북에 로그인하는 방법

답변

0

대화 상자는 사용자가 Facebook에 로그인 할 때만 만들어집니다. 일단 작업을 마치면 원래 활동으로 돌아갑니다. 이것이 바로 당신이 요구하는 것입니까?

페이스 북에 메시지를 게시하고 싶습니다. 사용자가 과거에 페이스 북에 로그인하고 유효한 세션을 가지고있는 경우이 대화 상자를 열고 로그인을 시도합니다 유효한 세션이없는 경우

try { 
     Log.d(TAG, "postToFaceBook()"); 
     if (facebook == null) { 
      facebook = new Facebook(API); 
      String access_token = prefs.getFBAccesTocken(); 

      long expires = prefs.getFBExpiry(); 
      if (access_token != null) { 
       facebook.setAccessToken(access_token); 
      } 
      if (expires != 0) { 
       facebook.setAccessExpires(expires); 
      } 
     } 

     if (facebook.isSessionValid()) { 
      Log.d(TAG, "Session is valid"); 
      facebook.extendAccessTokenIfNeeded(this, null); 
      postToFacebook(); 
     } else { 
      Log.d(TAG, "not valid"); 
      // Using SSO OAuth 
      // facebook.authorize(this, new String[] { "publish_stream" 
      // },new LoginDialogListener()); 

      // Not using SSO 
      facebook.authorize(this, new String[] { "publish_stream" }, 
        Facebook.FORCE_DIALOG_AUTH, new LoginDialogListener()); 
     } 
    } catch (NullPointerException e) { 
     Log.e(TAG, "An error occurd trying to open facebook app"); 

, 단순히 페이스 북에 게시 할 예정입니다.

LoginDialogListener()는이 응답에 응답합니다.

public class LoginDialogListener extends BaseDialogListener { 

    @Override 
    public void onComplete(Bundle values) { 
     Log.d(TAG, "Login response recieved"); 
     prefs.saveToken(facebook.getAccessToken()); 
     prefs.saveExpiry(facebook.getAccessExpires()); 
     facebook.extendAccessTokenIfNeeded(MyActivity.this, null); 
     Log.d(TAG, "Logged in "); 
     postToFacebook(); 
    } 

} 

다른 옵션은 SSO (예제 코드에서 주석 처리했습니다)를 사용하여 살펴 보는 것입니다.

+0

감사합니다. Danwms 사실 나는 안드로이드를 처음 사용하고 있습니다. 어디에서이 코드를 사용할 수 있습니까 ?? onComplete 메서드에서 ??? 페이스 북 로그인 대화 상자. onCompleted 메소드의 의도를 사용하여 새 액티비티를 시작했으며 다시 버튼을 클릭 할 때 기본 액티비티가 아닌 로그 아웃 및 기타 용도로 페이스 북 대화 상자로 이동하려고합니다. – Nadeem

관련 문제