2011-12-19 4 views
8

मैं कुछ नमूना कोड यहाँ के साथ काम कर रहा हूँ:एंड्रॉइड पर दी गई Google एपीआई अनुमतियों को निरस्त करने के लिए कहां?

http://code.google.com/p/google-api-java-client/source/browse/picasa-android-sample/src/main/java/com/google/api/services/samples/picasa/android/PicasaSample.java?repo=samples

अपने Android एप्लिकेशन में पहुँच अधिकृत है, लेकिन मैं जहां अब पहुंच को रद्द करना नहीं मिल रहा है, तो मैं इसके माध्यम से फिर से चला सकते हैं। एपीके को अनइंस्टॉल करना किसी भी अनुमति को रीसेट नहीं करता है।

उत्तर

8

मेरा मानना ​​है कि यदि आप https://accounts.google.com/IssuedAuthSubTokens पर जाते हैं तो इसे वहां से "कनेक्ट की गई साइट्स, ऐप्स और सेवाओं" के अंतर्गत अपना एप्लिकेशन सूचीबद्ध करना चाहिए, जिससे आप पहुंच रद्द कर सकते हैं।

+2

मेरे एंड्रॉइड विकास से कुछ भी सूचीबद्ध नहीं है, केवल उन्हीं वेबसाइटों को जिन्हें मैंने अधिकृत किया है। – gdonald

+1

@gdonald मैं उस प्रश्न के ठीक उत्तर के लिए देख रहा हूं। IssuedAuthSubTokens के तहत, मुझे सूचीबद्ध मेरे एंड्रॉइड ऐप को भी नहीं दिख रहा है। –

+0

http://stackoverflow.com/questions/6852256/how-do-you-force-accountmanager-to-show-the-access-request-screen-after-a-user –

-5

अपने AndroidManifest फ़ाइल में देखो।

1

यह भी सार्वजनिक, सरकारी एपीआई के माध्यम से संभव नहीं है।

देखें:

भी स्थापना रद्द करने और पुन: स्थापित एप्लिकेशन मदद नहीं करता है। How do you force AccountManager to show the "Access Request" screen after a user has already allowed access?

1

आप प्रोग्राम के रूप में टोकन रद्द किए जाने की

यह एक निहित डिवाइस पर जिस तरह से हो सकता है। सबसे पहले, उदाहरण के लिए पोस्ट किया गया उदाहरण ऐप: https://developers.google.com/drive/quickstart-android

यह उदाहरण ऐप आपको खाता चुनने के लिए संवाद प्रदर्शित करता है, फिर एक फोटो लेता है और फिर इसे Google ड्राइव पर अपलोड करता है। एक महत्वपूर्ण बात मैंने खोजी है कि यह नमूना ऐप अंततः असफल हो जाएगा। मैंने पाया कि ऐप का कैमरा हिस्सा क्रैश का कारण बनता है। तो कोड के कैमरे भाग को निष्क्रिय और सिर्फ एक एसडी कार्ड पर कुछ फ़ाइल के साथ फ़ाइल को बदलने और इसके बजाय डिस्क से फ़ाइल अपलोड करें।

ड्राइव के उपयोग की अनुमति वापस लेने के लिए, आप निम्न कोड निष्पादित करने के लिए की जरूरत है:

String token = credential.getToken(); 


HttpRequestFactory factory = HTTP_TRANSPORT.createRequestFactory(); 
GoogleUrl url = new GoogleUrl("https://accounts.google.com/o/oauth2/revoke?token=" + token); 
HttpRequest request = factory.buildGetRequest(url); 
HttpResponse response = request.execute(); 

कैसे क्रेडेंशियल चर तक पहुँचने के लिए पर नमूना कोड का संदर्भ लें। इसके अलावा, आप एक धागा है कि मुख्य थ्रेड पर नहीं है में उपरोक्त कोड चलाना चाहिए या यह असफल हो जायेगी।

तुम भी निम्न अनुमतियों जोड़ने की जरूरत है। नमूना कोड इन अनुमतियों को इंगित करने के लिए विफल रहता है और उनके बिना एप्लिकेशन दुर्घटना होगा:

<uses-permission android:name="android.permission.ACCOUNT_MANAGER" /> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 

ग्रहण शिकायत है कि उन अनुमतियों के कुछ ही व्यवस्था करने के लिए दिया जाता है, तो बस स्वच्छ परियोजना चलाने के लिए और यह चेतावनी निकाल देंगे। जब आप यह कर लें, तो आप इस ऐप्लिकेशन को अनइंस्टॉल और उपकरण को रीबूट करना चाहिए। Google Play सेवाओं का उपयोग करते हुए

https://developers.google.com/accounts/docs/OAuth2WebServer

+0

धन्यवाद, यह विधि ठीक काम कर रही है। – tcboy88

0

: टोकन वापस लेने के बारे में अधिक जानकारी के लिए, अनुभाग में "एक टोकन निरस्त हो रहा है" देख

http://developer.android.com/reference/com/google/android/gms/auth/GoogleAuthUtil.html

अपने दायरे को https://www.googleapis.com/auth/userinfo.profile जोड़ें।

उदाहरण:

String scope="oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile" 

final String token = GoogleAuthUtil.getToken(context, "[email protected]", scope); 

या "जानवर बल"

Intent res = new Intent(); 
res.addCategory("account:[email protected]"); 
res.addCategory("scope:oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"); 
res.putExtra("service", "oauth2:https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile"); 
Bundle extra= new Bundle(); 
extra.putString("androidPackageName","com.your.package"); 
res.putExtra("callerExtras",extra); 
res.putExtra("androidPackageName","com.your.package"); 
res.putExtra("authAccount","[email protected]"); 

String mPackage = "com.google.android.gms"; 
String mClass = "com.google.android.gms.auth.TokenActivity"; 
res.setComponent(new ComponentName(mPackage,mClass)); 
startActivityForResult(res,100); 

अब, जब आप का उपयोग यहाँ https://accounts.google.com/IssuedAuthSubTokens को रद्द आवेदन डिवाइस में फिर से अनुमति के लिए खिड़की आपको पता चलता है। प्राधिकरण पेज फिर से गति प्रदान करने के

2

दो कदम:

  1. https://accounts.google.com/IssuedAuthSubTokens करने के लिए जाना इच्छित ऐप को रद्द करने के। यह सर्वर पक्ष से अनुमतियों को साफ़ करेगा।
  2. अपने एंड्रॉइड डिवाइस की सेटिंग्स पर जाएं-> डेटा और समय: दिन या दो बार अपना समय तेज़ी से आगे बढ़ाएं। इससे मौजूदा टोकन की समयसीमा समाप्त हो जाएगी।
+0

यह Google ड्राइव के साथ मेरे ऐप कनेक्शन के लिए काम करता है। परीक्षण करते समय, मैं तारीख को तेज़-आगे की तारीख पर ठीक करता हूं। क्लिनिंग के बाद पहुंच को रद्द करने और प्राधिकरण पृष्ठ चलाने के बाद, यह हर बार पॉपअप करता है। –

0

आप पर खाता अनुमतियां निरस्त कर सकते हैं ...

https://security.google.com/settings/security/permissions

आप [खाता सेटिंग]> [खाता अनुमतियां]

सबूत है कि इस सवाल का जवाब असली सौदा है द्वारा वहाँ प्राप्त कर सकते हैं :

enter image description here

1

टी संघर्ष करने के बाद o मेरे एंड्रॉइड ऐप (अभी भी डीबग में) जीमेल एपीआई अनुमतियों के लिए प्राधिकरण को रद्द कर दिया है, मैंने काम किया है कि यह https://security.google.com/settings/security/permissions पर दिखाई देता है जैसे @ डेविड वाटर्स का उल्लेख है (यह एक नया लिंक है लेकिन एक ही स्थान पर जाता है) लेकिन केवल यदि आप Google Developers Console के माध्यम से एपीआई को सही ढंग से सक्षम किया है। इसका मतलब यह है कि ऐप अभी भी विकास में है और डीबग मोड में है, भले ही आपका OAuth 2.0 क्लाइंट आईडी जोड़ रहा हो।

कैसे Gmail API साइट (चरण 1 & 2) पर Android Quickstart गाइड पर आपके क्रेडेंशियल्स जोड़ने के बारे में एक बहुत अच्छा गाइड नहीं है।

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