2011-12-10 26 views
8

Android uygulamasında facebook girişini entegre etmeye çalışıyorum. İnternette çok fazla örnek buldum, ama şimdi şu problemim var ve bir çözüm bulamıyorum.Android Facebook.authorize tamamlanmayan yöntem çağırma

facebook.authorize bitirdikten sonra, tamamlanmamış yöntem hiçbir zaman çağrılmaz. Facebook.FORCE_DIALOG_AUTH ile facebook.authorize kullanıyorum, bu durumda eksik yöntem çağrılır ve access_token'i kaydedebilirim. Kodumu ekledim. Bu problemi çözmemde bana yardımcı olan var mı?

if(!facebook.isSessionValid()) {   
facebook.authorize(Login.this, new String[] {"publish_stream","read_stream", "offline_access"}, //Facebook.FORCE_DIALOG_AUTH, 
     new DialogListener() { 

       @Override 
       public void onComplete(Bundle values) { 

         SharedPreferences.Editor editor = mPrefs.edit(); 
         editor.putString("access_token", facebook.getAccessToken()); 
         editor.putLong("access_expires", facebook.getAccessExpires()); 
         editor.commit();         
       } 

       @Override 
       public void onFacebookError(FacebookError error) {Log.e("FB:","Facebook Error");} 

       @Override 
       public void onError(DialogError e) {Log.e("FB:","Error");} 

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

Teşekkür Simo

cevap

22

official documentation da belirtildiği gibi, düzgün onActivityResult() uygulanan emin olun: Yanıtınız için

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

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

Merhaba Alextsc sayesinde. Eklediğim kod, giriş düğmesinin onclicklistener yöntemi içindir. Yani onActivityResult'u nereye koymam gerekiyor? Ayrıca, facebook.FORCE_DIALOG_AUTH ile neden hep birlikte çalışır? – Simone

+0

'onActivityResult()', sizin Faaliyetinizin bir yöntemidir * ('onCreate()' ve benzerleri de etkinlik yöntemleridir) *. Yukarıdaki kod parçasını yalnızca etkinlik sınıfınıza kopyalayabilirsiniz. Ben FORCE_DIALOG_AUTH çalışır çünkü facebook geri arama için sonuç göndermek için android aktiviteleri yerine farklı bir mekanizma kullanır (bu durumda inanıyorum bu durumda tüm webview). Eğer bunun kesin bir cevabı varsa, facebook android sdk açık kaynak olduğundan sdk kodunu okumanızı tavsiye ederim. –

+0

Yardımlarınız için teşekkürler alextsc. Sonunda sorunumu çözdüm. Çok teşekkürler – Simone

İlgili konular