2013-01-13 7 views
5

मैं Google डिस्क पर प्रमाणन के लिए इस विधि का उपयोग कर रहा: https://developers.google.com/drive/quickstart-androidGoogleAccountCredential पुन: उपयोग प्रमाणन - Google डिस्क

का चयन खाते महान काम कर रहा है। अब मैं prefs में उपयोगकर्ता प्रमाण पत्र स्टोर करना चाहता हूँ। मैं खाता नाम सहेज सकता हूं और फिर इसे दोबारा बदल सकता हूं। मैं भविष्य के उपयोग के लिए प्रमाण पत्र का पुन: उपयोग करना चाहता हूं।

क्या Google Play Services और GoogleAccountCredential का उपयोग करके पुनः उपयोग करना संभव है?

यह मेरा परिदृश्य है: savedCredentials

  • यदि नहीं के लिए

    1. StartActivity
    2. खोजें -> शो खाता पिकर (यह काम कर रहा है)
    3. मैं खाते का निर्णय लेते हैं - प्राथमिकताओं के saveCredentians।

    अब मैं अपना ऐप बंद करता हूं और फिर से चलाता हूं। वहाँ सहेजे जाते हैं साख -

    1. StartActivity
    2. savedCredentials
    3. हाँ के लिए खोजें। मैं उनका उपयोग करना चाहता हूं।

    मैं कुछ इस तरह कोशिश कर रहा हूँ:

    credential = GoogleAccountCredential.usingOAuth2(GoogleDriveBackup.this, DriveScopes.DRIVE_FILE); 
    
    //use saved account (stored[0] is OK) 
    credential.setSelectedAccountName(stored[0]); 
    credential.getToken(); 
    service = getDriveService(credential); 
    

    कहाँ:

    private Drive getDriveService(GoogleAccountCredential credential) { 
         return new Drive.Builder(AndroidHttp.newCompatibleTransport(), 
    new GsonFactory(), credential).build(); 
         } 
    

    यह काम नहीं कर रहा। मुझे GoogleJsonResponseExcelption से 500 आंतरिक सर्वर त्रुटियां मिल रही हैं। Android के लिए Google Play सेवाओं का उपयोग करके ऐसा करने का सबसे अच्छा तरीका क्या है।

  • +0

    समस्या थी: DriveScopes.DRIVE_FILE। मैंने DriveScopes.DRIVE_FILE को ड्राइव में बदल दिया है और अब सब कुछ ठीक काम कर रहा है। मुझे नहीं पता कि यह एक प्ले सेवा बग है या नहीं। – adek

    उत्तर

    8

    यदि आप जो करने का प्रयास कर रहे हैं वह इस बात से परहेज कर रहा है कि उपयोगकर्ता को आपके ऐप को दोबारा अधिकृत करना है तो आपको क्रेडेंशियल ऑब्जेक्ट को सहेजने की आवश्यकता नहीं है। आपको केवल खाता पिकर का उपयोग करके चुने गए खाते को सहेजने की ज़रूरत है।

    अगली बार जब आपका ऐप उपयोग किया जाता है तो एक क्रेडेंशियल ऑब्जेक्ट को फिर से बनाते समय, प्ले सेवाओं को पता चलेगा कि उपयोगकर्ता ने आपको पहले से ही पहुंच प्रदान कर दी है और आपको ऑथ इन्टेंट दिखाना नहीं होगा (अपवाद में उपलब्ध)।

    आपको उपयोगकर्ता को अपना खाता चुनने का तरीका प्रदान करने की आवश्यकता है।

    +0

    हां, यह मेरे ऐप में जो कुछ भी कर रहा है वह बेहद शानदार है। मेरे नमूना कोड में संग्रहीत [0] में केवल Google खाता नाम है ([email protected])। DriveScopes.DRIVE_FILE गलत था। मैंने इसे ड्राइव में बदल दिया है और सब कुछ ठीक काम कर रहा है। – adek

    +0

    कृपया इसे अपने प्रश्न के उत्तर के रूप में जोड़ें और इसे स्वीकार करें। – hcpl

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