2012-10-12 4 views
2

을 열지 마십시오 후, 여기에 코드입니다 :권한 부여 페이스 북의 권한을 페이스 북 나는 API의 페이스 북 가이드를 따라

ib2 = (ImageButton) findViewById(R.id.imageButton2); 

    list = new OnClickListener() { 

     public void onClick(View v) { 

      /* 
      * Get existing access_token if any 
      */ 
      mPrefs = getPreferences(MODE_PRIVATE); 
      String access_token = mPrefs.getString("access_token", null); 
      long expires = mPrefs.getLong("access_expires", 0); 
      if(access_token != null) { 
       facebook.setAccessToken(access_token); 
      } 
      if(expires != 0) { 
       facebook.setAccessExpires(expires); 
      } 

      /* 
      * Only call authorize if the access_token has expired. 
      */ 
      if(!facebook.isSessionValid()) { 

       facebook.authorize(Answer.this, new String[] {"user_about_me","publish_checkins"}, new DialogListener() { 
        public void onComplete(Bundle values) { 
         SharedPreferences.Editor editor = mPrefs.edit(); 
         editor.putString("access_token", facebook.getAccessToken()); 
         editor.putLong("access_expires", facebook.getAccessExpires()); 
         editor.commit(); 
        } 

        public void onFacebookError(FacebookError error) {} 

        public void onError(DialogError e) {} 

        public void onCancel() {} 
       }); 
      } 
    }}; 


    ib2.setOnClickListener(list); 

그리고

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    facebook.authorizeCallback(requestCode, resultCode, data); 
} 

권리 선언과 올바른 위치에서 각각. 그리고 ...

처음으로 Onclick 버튼을 클릭하면 페이스 북에서 내 앱에 필요한 권한을 수락하도록 요청합니다.

하지만 ...

내가 같은 버튼의 onclick을 두 번째로는, 페이스 북의 창이 열리지 않습니다. 왜 그럴 수 있죠?

권한을 설정하면 승인이 표시됩니다. 확인 !!!

답변

1

공식 Facebook 응용 프로그램이 설치되어 있습니까? 왜냐하면 만약 당신이 그렇게했다면 나는 그들이 아직 고쳐지지 않았다고 믿는 버그입니다.

그래도 문제가 있다면 나도 몰라,하지만 당신은 대화 상자를 강제로 시도 할 수 : facebook.authorize(Answer.this, new String[] {"user_about_me","publish_checkins"}, Facebook.FORCE_DIALOG_AUTH, new DialogListener() {

나는 확실히 당신이 여기에서 발생하는 이해하지 않기 때문에 내가 그것을 작동하는 방법을 알려 주시기 바랍니다. 당신이 페이스 북 응용 프로그램을 로그인 처음으로

+0

"감사합니다"라고 쓰여진 것이 아니라 "죄송합니다!"라는 정책을 알고 있습니다. 앱이 FB 측에서 승인되었지만 Android 측에서 실행되지 않았을뿐 아니라 트랩이나 다른 일을 할 수있는 기회도없이 종료됩니다. 네가 나에게 묻는다면 아주 차선이다. 그렇게해서 어쨌든, 당신이 거기에서 추천 한대로 수정을했고 jove에 의해 그것은 좋은 un를 작동합니다. 마지막으로 .. facebook SDK 버그 목록은 어디에 있습니까? 나는 이것이 마지막이 아닐 것이라고 확신한다. –

+0

나는 누군가를 도울 수 있다는 소식을 듣고 기쁘다! 나는 그것이 매우 이상한 버그라는 것에 동의한다. 그리고 내가 아는 한이 해결 방법은 아마도 가장 신뢰할만한 것은 아니지만 그것은 나에게 효과적이다. 버그 목록은 developers.facebook.com/bugs/에서 확인할 수 있습니다. – Plasma

0
"The first time doing Onclick on the button, facebook ask me to accept the permissions  required for my app." 
이 경우

는, 당신은 응용 프로그램 액세스 토큰을 가지고

facebook.isSessionValid은()

거짓

= 만료되지 않습니다 - ->는 초 (당신의 페이스 북의 accout이 전에 응용 프로그램을 허용하지로)

페이스 북이 권한을

을 요청합니다 실행 facebook.authorize()하지만 OND 시간은

액세스 토큰과는 sharepreference에 저장 한 만료는 는 ==> facebook.isSessionValid는()

==> facebook.authorize()가 실행되지 않습니다, 사실

==> 로그인 한 것 같습니다

그래서 페이스 북 창이 나타나지 않습니다. 그럼 당신을 앱의 캐시

2) 알 수있는 응용 프로그램 (sharepreference의 액세스 토큰을 종료)

를 청소

1)

당신은 페이스 북이 다시 창을 팝업보고 싶다면

, 페이 스북 로그인 창이 나타납니다. 그러나 앱을 이미 허용 했으므로 미리보기 페이지가 표시되지 않습니다 (한 번만 허용하면됩니다).

다시 페이스 북 권한 페이지를 보려면 그냥 당신의 페이스 북은 priva에 간다. cy 설정 -> 광고, 앱 및 웹 사이트 -> 설정 수정을 누르고 APP 승인을 취소하십시오. 다음번에 앱에 로그인 할 때 Premission 페이지가 다시 나타납니다.