2011-12-10 10 views
8

मैं अपने एंड्रॉइड ऐप पर फेसबुक लॉगिन को एकीकृत करने की कोशिश कर रहा हूं। मुझे इंटरनेट पर बहुत सारे उदाहरण मिले, लेकिन अब मुझे निम्नलिखित समस्या है और मुझे कोई समाधान नहीं मिल रहा है।एंड्रॉइड फेसबुक। प्राधिकृत अपूर्ण विधि को कॉल न करें

फेसबुक के बाद। काम खत्म करने के अधिकार, अपूर्ण विधि कभी नहीं कहा जाता है। यदि मैं facebook.FORCE_DIALOG_AUTH के साथ facebook.Authorize का उपयोग करता हूं, तो इस मामले में अपूर्ण विधि कहा जाता है और मैं access_token को सहेज सकता हूं। मैं अपने कोड का एक स्निप संलग्न करता हूं। क्या कोई इस समस्या को हल करने में मेरी सहायता कर सकता है?

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() {} 
     }); 
} 

धन्यवाद Simo

उत्तर

22

सुनिश्चित करें कि आप onActivityResult() ठीक तरह से लागू के रूप में official documentation में कहा गया है बनाओ: आपकी प्रतिक्रिया के लिए

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

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

हाय Alextsc, धन्यवाद। जो कोड मैंने संलग्न किया है वह लॉगिन बटन की ऑनक्लिकलिस्टर विधि के लिए है। तो मुझे एक्टिविटी रिसेट पर कहां रखना है? साथ ही, फेसबुक के साथ क्यों .FORCE_DIALOG_AUTH सभी अपेक्षित के रूप में काम करता है? – Simone

+0

'पर एक्टिविटी रिसेट()' आपकी गतिविधि का एक तरीका है * ('ऑनक्रेट()' और इसी तरह गतिविधि विधियां भी हैं) *। आप उपरोक्त स्निपेट को अपनी गतिविधि कक्षा में कॉपी कर सकते हैं। मुझे लगता है कि FORCE_DIALOG_AUTH काम करता है क्योंकि परिणाम कॉलबैक पर परिणाम भेजने के लिए एंड्रॉइड गतिविधियों के बजाए एक अलग तंत्र का उपयोग करता है (यह इस मामले में आधारित सभी वेबव्यू है)। यदि आप इसका निश्चित उत्तर देना चाहते हैं तो मैं एसडीके कोड पढ़ने की सलाह देता हूं, क्योंकि फेसबुक एंड्रॉइड एसडीके ओपन सोर्स है। आपकी सहायता alextsc के लिए –

+0

धन्यवाद। अंत में मैंने अपनी समस्या हल की। बहुत बहुत धन्यवाद – Simone

संबंधित मुद्दे