2011-05-28 25 views
6

के लिए कॉलबैक यूआरएल स्वीकार नहीं कर रहा है मैंने www.marakana.com से OAuthDemo एंड्रॉइड ऐप डाउनलोड किया है। यह उनकी शामिल कुंजी/गुप्त & कॉलबैक यूआरएल के साथ ठीक काम करता है। मैंने ट्विटर ओएथ एपीआई पर पढ़ा और अपने एंड्रॉइड कोड के लिए ब्राउजर टाइप ऐप पंजीकृत किया और कॉलबैक यूआरएल को www.mysite.com पर सेट किया, & पढ़ें सामान्य पहुंच लिखें और मेरी कुंजी/गुप्त पाएं।ट्विटर एपीआई एंड्रॉइड ऐप

हालांकि जब मैं मेरा साथ मूल OAuthDemo से कुंजी/गुप्त की जगह, मैं एक प्रमाणीकरण त्रुटि मिलती है:

05-27 14:40:25.964: WARN/System.err(441):  oauth.signpost.exception.OAuthCommunicationException: Communication with the service provider failed: https://api.twitter.com/oauth/request_token 
05-27 14:40:25.974: WARN/System.err(441):  at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:214) 
05-27 14:40:25.974: WARN/System.err(441):  at oauth.signpost.AbstractOAuthProvider.retrieveRequestToken(AbstractOAuthProvider.java:69) 
05-27 14:40:25.974: WARN/System.err(441):  at com.marakana.oauth.MainActivity$OAuthAuthorizeTask.doInBackground(MainActivity.java:116) 
05-27 14:40:25.974: WARN/System.err(441):  at com.marakana.oauth.MainActivity$OAuthAuthorizeTask.doInBackground(MainActivity.java:1) 
05-27 14:40:25.974: WARN/System.err(441):  at android.os.AsyncTask$2.call(AsyncTask.java:252) 
05-27 14:40:25.974: WARN/System.err(441):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 
05-27 14:40:25.974: WARN/System.err(441):  at java.util.concurrent.FutureTask.run(FutureTask.java:137) 
05-27 14:40:25.974: WARN/System.err(441):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081) 
05-27 14:40:25.974: WARN/System.err(441):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:574) 
05-27 14:40:25.974: WARN/System.err(441):  at java.lang.Thread.run(Thread.java:1020) 
05-27 14:40:25.984: WARN/System.err(441): Caused by: java.io.FileNotFoundException: https://api.twitter.com/oauth/request_token 
05-27 14:40:25.984: WARN/System.err(441):  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:532) 
05-27 14:40:25.984: WARN/System.err(441):  at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:283) 
05-27 14:40:25.984: WARN/System.err(441):  at oauth.signpost.basic.HttpURLConnectionResponseAdapter.getContent(HttpURLConnectionResponseAdapter.java:18) 
05-27 14:40:25.984: WARN/System.err(441):  at oauth.signpost.AbstractOAuthProvider.handleUnexpectedResponse(AbstractOAuthProvider.java:228) 
05-27 14:40:25.984: WARN/System.err(441):  at oauth.signpost.AbstractOAuthProvider.retrieveToken(AbstractOAuthProvider.java:189) 
05-27 14:40:25.984: WARN/System.err(441):  ... 9 more 
05-27 14:40:29.113: WARN/InputManagerService(73): Starting input on non-focused client [email protected] (uid=10035 pid=441) 
05-27 14:40:29.133: WARN/IInputConnectionWrapper(441): showStatusIcon on inactive InputConnection 

कोड यहाँ स्थित है ... https://gist.github.com/996219

मैं इन संबंधित प्रश्नों पाया Stackoverflow.com में: 1. OAuth + Twitter on Android: Callback fails 2. oauth_callback on Android

और इस मुद्दे पर मिला जहां:

क्या इसका मतलब है कि मैं callback url दर्ज कर सकता हूं: dev.twitter.com साइट पर www.mysite.com और फिर मेरे एंड्रॉइड कोड में oauth_callback_url = "myappname" दर्ज करें;

मैं jtwitter का उपयोग कर रहा हूं जिसके लिए एक योजना की आवश्यकता होती है जो यूआरएल का हिस्सा बनती है। यह कैसा दिखना चाहिए? मैंने कोशिश की:

private static final String OAUTH_CALLBACK_URL = "http://www.santiapps.com"; 
private static final String OAUTH_CALLBACK_SCHEME = OAUTH_CALLBACK_URL + "://callback"; 

लेकिन यह भी काम नहीं करता था। कृपया मुझे यह समझने में मदद करें कि मैं कहां गलत कर रहा हूं?

+0

धन्यवाद वरुण, मैंने आपकी टिप्पणी पढ़ने के बाद अक्सर पूछे जाने वाले प्रश्न पढ़े और मैं अपने प्रश्नों के उत्तर के माध्यम से देखा और देखा और सही लोगों को स्वीकार किया। धन्यवाद! – marciokoko

उत्तर

4

ऐसा लगता है कि समस्या यह थी कि मैंने अपना ऐप क्लाइंट के रूप में कॉन्फ़िगर किया था और इसे ब्राउज़र प्रकार होना था, भले ही यह एंड्रॉइड पर मूल क्लाइंट ऐप हो। अन्य साइट पर

+0

ऐप की कॉन्फ़िगरेशन को कैसे जानना है .. कृपया मदद करें .. वहां विकल्प नहीं मिला .. इसे करने के लिए संघर्ष .. एक ही समस्या .. – aditya

+0

dev.twitter.com पर जाएं और इसे संशोधित करने के लिए अपने ऐप का चयन करें गुण – marciokoko

1

कॉलबैक मुझे एक ही यू मेनिफ़ेस्ट फ़ाइल में निर्दिष्ट, टैग के तहत के रूप में होना चाहिए .. समय ((ब्राउज़र प्रकार) कॉलबैक में), और अपने कोड में कॉलबैक अपने चहचहाना आवेदन दर्ज करने पर निर्दिष्ट किया जाना चाहिए

6

मुझे यह वही समस्या थी। मैंने पैकेट कैप्चर किया क्योंकि मुझे पता था कि यूआरएल अच्छा था। सर्वर से प्रतिक्रिया थी:

<?xml version="1.0" encoding="UTF-8"?> 
<hash> 
    <error>Desktop applications only support the oauth_callback value 'oob'</error> 
    <request>/oauth/request_token</request> 
</hash> 

मेरे लिए समस्या ट्विटर आवेदन "ब्राउज़र" करने के लिए सेट करने के लिए आवश्यक सेटिंग्स में आवेदन प्रकार था। समस्या यह थी कि ट्विटर ने अपना इंटरफ़ेस बदल दिया और एप्लिकेशन प्रकार को हटा दिया। एप्लिकेशन सेटिंग पृष्ठ में आपको कॉलबैक यूआरएल को स्पष्ट रूप से ब्राउज़र प्रकार पर स्विच करने की आवश्यकता है।

4

भी मैं एक ही समस्या थी, लेकिन मैं CALLBACK_URL क्षेत्र को जोड़ने "https://www.google.com" द्वारा इसे हल करते हुए चहचहाना के साथ अपने आवेदन दर्ज की । असल में मुझे लगता है कि एक वैध यूआरएल प्रदान करने से एप्लिकेशन ब्राउज़र-ऐप बन जाता है और यह डेस्कटॉप-ऐप बना रहता है ...

+0

जो आपने कॉलबैक में दिया है।जावा क्लास –

+0

यह मेरे लिए aswel .. thx काम किया – Reshma

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