API Twitter не принимает URL-адрес обратного вызова для Android-приложения

Я загрузил приложение OAuthDemo для Android с сайта www.marakana.com. Он отлично работает с включенным ключом / секретным & обратным вызовом. Я прочитал в twitter OAuth API и зарегистрировал приложение типа браузера для своего Android-кода и установил URL-адрес обратного вызова на 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 com.android.internal.view.IInputMethodClient$Stub$Proxy@408df318 (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 на Android: обратный вызов не работает 2. oauth_callback на Android

И добрался до этого момента, где:

Означает ли это, что я могу ввести URL-адрес обратного вызова: www.mysite.com на сайте dev.twitter.com, а затем в моем коде Android введите oauth_callback_url = "myappname";

Im, использующий jtwitter, для которого требуется схема, которая является частью URL-адреса. Как это должно выглядеть? Я пытался:

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

Но это тоже не сработало. Помогите мне понять, где я делаю неправильно?

У меня была такая же проблема. Я сделал захват пакетов, так как знал, что URL-адрес хорош. Ответ сервера:

 <?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> 

Для меня проблема заключалась в типе приложения в настройках приложения Twitter, которое необходимо установить в «Браузер». Проблема заключалась в том, что твиттер изменил свой интерфейс и удалил тип приложения. Вам нужно указать URL-адрес обратного вызова на странице параметров приложения, чтобы неявно переключить его на тип браузера.

Похоже, проблема заключалась в том, что у меня было настроено приложение, настроенное как «Клиент», и оно должно было быть браузером, даже если оно было родным клиентским приложением на Android.

Даже у меня была такая же проблема, но я решил ее, добавив «https://www.google.com&#xBB; в поле CALLBACK_URL при регистрации моего приложения с твиттером. На самом деле, я считаю, что предоставление правильного URL-адреса делает приложение-приложение-приложение другим, оно остается настольным приложением …

Обратный вызов на другой сайт должен быть указан в момент регистрации вашего приложения Twitter (в обратном вызове (тип браузера)), а обратный вызов в вашем коде должен меняться так же, как и, указанный в файле манифеста, в теге ..