2012-01-11 2 views
1

Android Facebook API singleSignOn() 메소드에 대한 질문이 있습니다.Android Facebook API 싱글 사인온?

아래 코드는 "com.facebook.katana"패키지와 "com.facebook.katana.proxyAuth"클래스를 사용합니다.

문제는 Eclipse를 설치하는 과정에서 그런 패키지와 클래스가 없다는 것입니다.하지만 패키지와 클래스를 사용하는 활동이 제대로 작동하는 것처럼 보입니다. 왜?

내가 바로 패키지가없는 경우에도

activity.startActivityForResult(intent, activityCode); 

ActivityNotFoundException 오류가 발생하지 않습니다

라인?

코드

은 여기에 있습니다 : 신경 쓰지

private boolean startSingleSignOn(Activity activity, String applicationId, 
            String[] permissions, int activityCode) { 
    boolean didSucceed = true;<br> 
    Intent intent = new Intent(); 

    intent.setClassName("com.facebook.katana", 
      "com.facebook.katana.ProxyAuth"); 
    intent.putExtra("client_id", applicationId); 
    if (permissions.length > 0) { 
     intent.putExtra("scope", TextUtils.join(",", permissions)); 
    } 

    // Verify that the application whose package name is 
    // com.facebook.katana.ProxyAuth has the expected 
    // Facebook app signature. 
    if (!validateAppSignatureForIntent(activity, intent)) { 
     Log.d("Facebook - startSignleSignOn", "AppSign Validation Failed, return didsucced false"); 
     return false; 
    } 

    mAuthActivity = activity; 
    mAuthPermissions = permissions; 
    mAuthActivityCode = activityCode; 
    try { 
     activity.startActivityForResult(intent, activityCode); 
    } catch (ActivityNotFoundException e) { 
     Log.d("Facebok - startSingleSignOn", "Activity not found exception, return didsucced false"); 
     didSucceed = false; 
    } 

    return didSucceed; 
} 

답변

3

. 나는 코드가 "com.facebook.katana"패키지와 "com.facebook.katana.ProxyAuth"클래스를 찾을 수 없을 때 자동으로 페이스 북의 웹 인증을 사용한다는 것을 알았다.

나는이 패키지와 클래스가 Facebook 응용 프로그램에 포함되어 있다고 생각합니다. 따라서 "com.facebook.katana.ProxyAuth"를 포함하는 Facebook 공식 응용 프로그램을 사용하는 경우 내 응용 프로그램은 SigleSignOn 메서드를 사용하여 사용자가 Facebook 공식 응용 프로그램에 로그온 한 경우 내 응용 프로그램의 Facebook 인증을 건너 뛸 수 있습니다. 그리고 Facebook Offical 앱이 없다면 앱은 전통적인 webview 인증을 사용합니다.

+0

여전히 작동합니까? Facebook App Dialog가 열리면 "매개 변수 app_id가 필요합니다."라고 표시됩니다. – dannyroa