2017-01-06 14 views
5

के साथ एंड्रॉइड फेसबुक एसडीके लॉगिन समस्या LoginManager कक्षा का उपयोग करते समय लॉग इन करते समय मुझे एक अजीब समस्या है। मैं आवश्यक अनुमतियों के साथ लॉगिन करने के लिए एक टुकड़े से LoginManager.getInstance().logInWithReadPermissions(..) पर कॉल कर रहा हूं।पार्स एसडीके

मैंने जहां तक ​​कर सकते हैं, मैंने डीबग किया है और मुझे पता चला है कि कॉलबैक अनुरोध कोड जो इस खंड की मूल गतिविधि के onActivityResult पर वापस आता है, गलत है। कोड का निम्नलिखित भाग LoginManager वर्ग से है जो कुछ अनुरोध कोड के साथ लॉगिन के लिए कॉलबैक पंजीकृत करता है।

... 
CallbackManagerImpl.registerStaticCallback(
       CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode(), 
       new CallbackManagerImpl.Callback() { 
       @Override 
       public boolean onActivityResult(int resultCode, Intent data) { 
        return LoginManager.this.onActivityResult(resultCode, data); 
       } 
       } 
    ); 
... 

लेकिन जब यह गतिविधि यह CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode() नहीं है की onActivityResult कॉल लेकिन कुछ और इसे डबल की तरह है। उदाहरण के लिए जब मैं डिबग करने की कोशिश की और मूल्यों की जाँच यह कुछ इस तरह था:)

CallbackManagerImpl.RequestCodeOffset.Login.toRequestCode (= 64206

requestCode गतिविधि कक्षा में प्राप्त = 129742

और इसी वजह से अब जब callbackManager

callbackManager.onActivityResult (requestCode, resultCo तरह onActivityResult कॉल करने के लिए कोशिश करता है डी, डेटा);

इस अनुरोध के साथ कोड को नक्शे से लॉगिनकॉलबैक नहीं मिल रहा है और यह वहां पर रुक जाता है। मुझे नहीं पता कि यह क्यों हो रहा है क्योंकि मैं ParseFacebookSDK का उपयोग कर रहा हूं और जब मैं ParseFacebookUtils.logInWithReadPermissionsInBackground(..) के साथ लॉगिन करता हूं तो यह पूरी तरह से काम करता है। निम्नलिखित क्रमिक निर्भरता है।

... 
compile 'com.facebook.android:facebook-android-sdk:4.7.0' 
compile('com.parse:parse-android:1.13.0') { 
     exclude group: 'com.parse.bolts', 
       module: 'bolts-tasks' 
    } 
compile 'com.parse:parsefacebookutils-v4-android:[email protected]' 
... 

आप मदद कर सकते हैं, तो बहुत सराहना की जाएगी। धन्यवाद।

अद्यतन:

यह मेरे लिए काम किया जब मैं टुकड़ा के बजाय माता पिता गतिविधि से फेसबुक लॉगइन करने की कोशिश की, यह सही अनुरोध कोड गतिविधि के onActivityResult में इस समय लौट आए और यह केवल काम किया। इसने मेरी समस्या का समाधान किया है लेकिन अभी भी खंड के साथ समस्या को समझना चाहते हैं, इसलिए यदि आप जानते हैं तो कृपया अपने विचार साझा करें। धन्यवाद।

+0

जबकि फेसबुक एंड्रॉयड के लिए काफी एसडीके उपलब्ध कराने के पुस्तकालय के उपयोग से बचने के लिए कृपया। क्योंकि हम जानते हैं कि पार्स बहिष्करण प्रक्रिया में है। यह आपके लिए एक सुझाव है कि पार्स का उपयोग न करें। –

+1

मैं बैकएंड के रूप में पार्स का उपयोग कर रहा हूं और इसे पहले ही समर्पित ऐप सर्वर पर माइग्रेट कर चुका हूं। – KunalK

उत्तर

3

ParseFacebookUtils.logInWithReadPermissionsInBackground पर कॉल करने का प्रयास करते समय आपका उपयोगकर्ता पहले से लॉग इन है, सही नहीं है, और शायद यही कारण है कि आपको कॉलबैक नहीं मिलता है।

यदि आपका उपयोगकर्ता पहले से लॉग इन है, लेकिन फेसबुक से कनेक्ट नहीं है, तो कॉल करने के लिए सही फ़ंक्शन ParseFacebookUtils.linkWithReadPermissionsInBackground है, जिसका अर्थ है कि आप उपयोगकर्ता को फेसबुक से लिंक करना चाहते हैं, अपने ऐप में लॉग इन नहीं करना चाहते हैं (जैसा कि वह पहले से लॉग इन है)। Take a look in the docs for that.

+0

ओहके मुझे इसके साथ प्रयास करने दें। जवाब के लिए धन्यवाद। – KunalK

+0

इस मामले में क्या होगा जब कोई अन्य उपयोगकर्ता पहले से किसी अन्य डिवाइस पर फेसबुक के साथ लॉग इन हो गया है क्योंकि दस्तावेज कहता है कि __ "लिंक होने पर होने वाले चरण लॉग इन के समान ही होते हैं। अंतर यह है कि सफल लॉगिन पर, मौजूदा पारसेसर फेसबुक की जानकारी के साथ अपडेट किया गया है। फेसबुक के माध्यम से भविष्य के लॉगिन अब उपयोगकर्ता को अपने मौजूदा खाते में लॉग इन करेंगे। "__ – KunalK

+0

यह एक अलग सवाल है। क्या जवाब आपके मूल प्रश्न को हल करता है? –

2

आप एक टुकड़ा से LoginManager.getInstance().logInWithReadPermissions(..) बुला रहे हैं, तो सही अनुरोध कोड, बजाय गतिविधि के onActivityResult टुकड़ा की onActivityResult में प्राप्त करने की अपेक्षा करते हैं।

here देखें। टुकड़ों में अपनी 'onctivityResult` विधि है। उन्हें इसके लिए एक गतिविधि पर निर्भर नहीं होना चाहिए।

यह भयानक नहीं है कुछ है कि जरूरी नहीं कि कोई यूआई की आवश्यकता नहीं है अभी भी अपने आप में यह तरीका प्रदान करता है कि :)

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