2010-08-16 5 views
6

मैं एंड्रॉइड 2.1 पर स्थापित एप्लिकेशन के लिए Google डेटा एपीआई का उपयोग करने की कोशिश कर रहा हूं। मैं नहीं चाहता कि उपयोगकर्ता को अपने क्रेडेंशियल्स दर्ज करना होगा यदि उसके पास डिवाइस पर पहले से कॉन्फ़िगर किया गया खाता है। इस प्रकार, मैं खाता प्रकार "com.google" के साथ खाता प्रबंधक का उपयोग कर रहा हूं।क्या खाता प्रबंधक खातों का उपयोग कर एंड्रॉइड पर Google डेटा एपीआई के लिए प्रमाणीकृत करने का कोई आधिकारिक तरीका है?

लेकिन वहां से कहाँ जाना है? Google प्रमाणीकरण (authTokenType इत्यादि) कैसे करें, इस पर Google से कोई नमूने नहीं हैं। एक परियोजना है जो इसे करने की कोशिश कर रही है (http://code.google.com/p/google-authenticator-for-android) सामान्य तरीके से लेकिन बिना किसी सफलता के।

क्या यह इतना कठिन हो सकता है? यह वास्तव में Google रीडर क्लाइंट जैसे अनुप्रयोगों को वापस रख रहा है जिन्हें उपयोगकर्ता को उनके Google प्रमाण-पत्रों के लिए पूछना है (जो उम्मीद है कि कोई भी उन्हें नहीं देता है)।

किसी भी पॉइंटर्स/सलाह की सराहना की जाती है।

उत्तर

1

कृपया Google डेटा एपीआई में sample code पर एक नज़र डालें। प्रमाणीकरण के बाद करना महत्वपूर्ण बात है GoogleHeaders.setGoogleLogin (स्ट्रिंग) को कॉल करना।

4

हां यह संभव है। एक बार जब आपके पास Google खाते (जैसे आपने वर्णित) पर एक संभाल लिया है, तो आपको GData सेवा के लिए खाता प्रबंधक से ऑथ टोकन का अनुरोध करने की आवश्यकता है।

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

ArrayList<Account> googleAccounts = new ArrayList<Account>(); 

// Get all accounts 
Account[] accounts = accountManager.getAccounts(); 
    for(Account account : accounts) { 
    // Filter out the Google accounts 
    if(account.type.compareToIgnoreCase("com.google")) { 
     googleAccounts.add(account); 
    } 
    } 
AccountManager accountManager = AccountManager.get(activity); 

// Just for the example, I am using the first google account returned. 
Account account = googleAccounts.get(0); 

// "wise" = Google Spreadheets 
AccountManagerFuture<Bundle> amf = accountManager.getAuthToken(account, "wise", null, activity, null, null); 

try { 
    Bundle authTokenBundle = amf.getResult(); 
    String authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); 

    // do something with the token 
    InputStream response = sgc.getFeedAsStream(feedUrl, authToken, null, "2.1"); 

} 

मुझे आशा है कि इस मदद करता है:

निम्न उदाहरण में, मैं Google Spreadsheets एपीआई का उपयोग कर रहा हूँ।

1

सुनिश्चित करें कि आप प्रमाणीकरण के बाद GoogleHeaders.setGoogleLogin पर कॉल करें। यदि आवश्यक हो तो आगे सहायता के लिए आप sample code देख सकते हैं।

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