2011-04-16 29 views
6

हे सब ने हाल ही में अपना पहला एंड्रॉइड ऐप विकसित किया जो फेसबुक में लॉग इन करता है और ग्राफ एपीआई का उपयोग करके संवाद बॉक्स के बिना स्थिति अपडेट करने का प्रयास करता है। नीचे दिया गया कोड प्राधिकरण कोड है (जो कि फ़बुक देव साइट पर ही था) और यह हाल ही में मेरे साथ सभी के लिए ठीक काम करता है। अब मेरे एमुलेटर पर मेरे ऐप लॉग इन ठीक है लेकिन जब मैं एपीके फ़ाइल निर्यात करता हूं और इसे अपने फोन पर डालता हूं तो यह मुझे 'प्रमाणीकरण त्रुटि' देता है। क्या कोई इसे समझा सकता है? यह मुझे अभी लॉगिन पृष्ठ नहीं दिखाता है, मैंने बनाया एक नया कीस्टोर और हैशकी और अपडेट किया गया है कि फेसबुक पर मेरे देव ऐप पेज पर हैशकी हमेशा की तरह है।फेसबुक प्रमाणीकरण एमुलेटर पर काम कर रहा है, लेकिन भौतिक डिवाइस पर नहीं

मुझे लगता है कि यह कीहश आदि के कारण है, लेकिन मुझे समझ में नहीं आता कि क्या गलत है। मैं क्या कर रहा हूं, मैं निर्यात, एप्लिकेशन पर क्लिक करता हूं, फिर मैं एक नया कीस्टोर बनाता हूं (पहली बार, मैं मौजूदा कीस्टोर का उपयोग करता हूं), फिर मुझे "कीटोल निर्यातकर्ट" आदि का उपयोग करके मेरी हैशकी को फबुक देव साइट पर दिखाया गया है। फिर मैं उस हैशकी को दर्ज करता हूं मेरे फेसबुक अकाउंट पर ऐप। लेकिन कभी-कभी किस्टस्टोर पासवर्ड सही होता है, लेकिन यह कहता है कि "कीस्टोर प्रारूप" अलग है, भले ही मैंने इसे उसी ऐप से पहले इस्तेमाल किया हो! फिर मुझे एक नया कीस्टोर बनाना होगा, और एक्सप फिर से Ortcert और यह सब एक दर्द है! एक आसान तरीका होना चाहिए?

क्या कोई संभवतः समझा सकता है कि फेसबुक ऐप्स के लिए हैशकी कैसे काम करती है?

अग्रिम धन्यवाद!

मेरा प्रमाणीकरण कोड:

public void login() 
{ 

    facebook.authorize(this,new String[] { "email", "read_stream", "publish_stream"}, new DialogListener(){ 
     int fbcheck=0; 
     @Override 
     public void onComplete(Bundle values) { 
      fbcheck=1; 
     facebookauthcheck(fbcheck); 
     } 

     @Override 
     public void onFacebookError(FacebookError error) { 
      fbcheck=0; 
      facebookauthcheck(fbcheck); 
     } 

     @Override 
     public void onError(DialogError e) { 
     fbcheck=0; 
     facebookauthcheck(fbcheck); 
     } 

     @Override 
     public void onCancel() { 
      fbcheck=2; 
      facebookauthcheck(fbcheck); 
      } 

    }); 
} 

public void facebookauthcheck(int fbcheck) 
{ 
    if (fbcheck == 0) { 
     Toast.makeText(this, "Authentication Error", Toast.LENGTH_LONG).show(); 
    } 
    else if (fbcheck==1) 
    { 
     Toast.makeText(this, "Authenticated", Toast.LENGTH_LONG).show(); 
    } 
    else 
     Toast.makeText(this, "Authentication Cancelled", Toast.LENGTH_LONG).show(); 
} 

उत्तर

4

हाँ मैं था इस मुद्दे,

यह एमुलेटर पर ठीक काम किया, मेरे देव फोन पर ठीक काम किया, लेकिन परीक्षण उपयोगकर्ताओं फोन पर असफल रहा।

यह फेसबुक ऐप और एसएसओ के साथ करना है। http://sean.lyn.ch/2011/07/android-the-facebook-sdk-sso-and-you/

यह 3 समाधान है:

इस का एक पढ़ा है।

मैं एसएसओ तो मैं विकल्प दो के लिए चला गया काम करने के लिए नहीं मिल सका, (एसएसओ से बाहर निकलना!) यह द्वारा किया जाता है:

facebook.authorize(this, PERMISSIONS, Facebook.FORCE_DIALOG_AUTH, this); 

आप काम करने के लिए इसे ठीक करने और एसएसओ प्राप्त करना चाहते हैं:

डीबग एपीके प्रमाणपत्र के लिए सही ढंग से अपनी हैश कुंजी जेनरेट करें। (उपरोक्त लिंक में विस्तृत)।

रेफरी:

Corresponding SO Question

+0

धन्यवाद इस अच्छा समाधान तुम मुझे बचाने के लिए ..,। – user1690588

+0

यू ने मुझे भी बचाया, जादू की तरह काम किया !!! – TharakaNirmana

0

मैं (कृपया की जगह 'गतिविधि') टुकड़े के साथ फेसबुक लॉगइन उपयोग कर रहा हूँ के साथ 'इस':

private void loginToFacebook() 
    { 
     mPrefs = activity.getPreferences(Context.MODE_PRIVATE); 
     facebook = new Facebook(APP_ID); 
     accessToken = mPrefs.getString("access_token", null); 
     long expires = mPrefs.getLong("access_expires", 0); 

     if (accessToken != null) 
     { 
      facebook.setAccessToken(accessToken); 
     } 

     if (expires != 0) 
     { 
      facebook.setAccessExpires(expires); 
     } 

     if (!facebook.isSessionValid()) 
     { 
      facebook.authorize(activity, new String[] {"publish_stream"}, Facebook.FORCE_DIALOG_AUTH, new DialogListener() { 

       public void onFacebookError(FacebookError arg0) { 
        // TODO Auto-generated method stub 

       } 

       public void onError(DialogError arg0) { 
        // TODO Auto-generated method stub 

       } 

       public void onComplete(Bundle arg0) { 
         SharedPreferences.Editor editor = mPrefs.edit(); 
         editor.putString("access_token", facebook.getAccessToken()); 
         editor.putLong("access_expires", facebook.getAccessExpires()); 
         editor.commit();       
         uploadPhoto(facebook, bitmap, null); // calling another method to upload an image to FB after logging in..    
       } 

       public void onCancel() { 
        // TODO Auto-generated method stub 

       } 
      }); 

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