La conexión de twitter falló

En Android ,
La conexión de Twitter falló. ¿Se requiere SSL?

Mi código funcionaba perfectamente y actualmente es una aplicación en vivo. Sin embargo, desde 2014 no ha estado trabajando y he oído que Twitter ha aplicado https o utilizando el concepto de SSL.

Ayúdame a solucionar este problema.

Aquí está mi registro.

03-14 15:00:02.838: D/TwitterApp(697): Error getting access token 03-14 15:00:02.878: W/System.err(697): 403:The request is understood, but it has been refused. An accompanying error message will explain why. This code is used when requests are being denied due to update limits (https://support.twitter.com/articles/15364-about-twitter-limits-update-api-dm-and-following). 03-14 15:00:02.878: W/System.err(697): message - SSL is required 03-14 15:00:02.878: W/System.err(697): code - 92 03-14 15:00:02.878: W/System.err(697): Relevant discussions can be found on the Internet at: 03-14 15:00:02.878: W/System.err(697): http://www.google.co.jp/search?q=6f0f59ca or 03-14 15:00:02.888: W/System.err(697): http://www.google.co.jp/search?q=20d0f73f 03-14 15:00:02.888: W/System.err(697): TwitterException{exceptionCode=[6f0f59ca-20d0f73f], statusCode=403, message=SSL is required, code=92, retryAfter=-1, rateLimitStatus=RateLimitStatusJSONImpl{remaining=14, limit=15, resetTimeInSeconds=1394790328, secondsUntilReset=-18874}, version=3.0.3} 03-14 15:00:02.888: W/System.err(697): at twitter4j.internal.http.HttpClientImpl.request(HttpClientImpl.java:177) 03-14 15:00:02.888: W/System.err(697): at twitter4j.internal.http.HttpClientWrapper.request(HttpClientWrapper.java:61) 03-14 15:00:02.888: W/System.err(697): at twitter4j.internal.http.HttpClientWrapper.get(HttpClientWrapper.java:89) 03-14 15:00:02.888: W/System.err(697): at twitter4j.TwitterBaseImpl.fillInIDAndScreenName(TwitterBaseImpl.java:126) 03-14 15:00:02.888: W/System.err(697): at twitter4j.TwitterImpl.verifyCredentials(TwitterImpl.java:592) 03-14 15:00:02.908: W/System.err(697): at com.twitter.android.TwitterApp$3.run(TwitterApp.java:150) 

Código de conexión twitter . Http://www.androidhive.info/2012/09/android-twitter-oauth-connect-tutorial/ esto es un desarrollo

A mi entender nada ha cambiado mucho con la implementación de OAuth que causaría esto, sin embargo, después de que usted haya autenticado usando OAuth si usted entonces utilizaba peticiones no-SSL para los datos esto pudo haber trabajado previamente pero ahora no. Twitter introdujo un cambio restringiendo el acceso a las conexiones SSL / TLS sólo el 14 de enero de 2014.

En algún lugar de tu código Java habrá URL que se están utilizando para recuperar datos de los servidores de Twitter. Le sugeriría que haga una búsqueda / reemplazo a través de su código, donde para cualquier ocurrencia de http://api.twitter.com/ usted los substituye con https://api.twitter.com/ y esto puede esperanzadamente solucionar este problema. Es posible que haya otros problemas que pueden salir a la luz después, pero al menos este es su primer paso.

Al especificar https se asegura de que está utilizando el protocolo SSL para garantizar que los datos se mantengan seguros durante la transmisión entre su aplicación y Twitter.

Si necesita más información para validar y verificar opcionalmente el certificado SSL en su código para obtener seguridad adicional, lea Conectando a la API de Twitter a través de SSL en el sitio web de documentación de desarrolladores de Twitter.


Editar: Sólo para aclarar más, para recibir este mensaje de error debe haber autenticado correctamente utilizando OAuth a través de una dirección URL SSL, pero luego volver a URL no SSL para las solicitudes de datos de seguimiento.

Si utilizas sign-post + Twitter4j, definirías los proveedores de OAuth de la siguiente manera:

 private DefaultOAuthConsumer mOAuthConsumer = null; private DefaultOAuthProvider httpOauthprovider = new DefaultOAuthProvider("https://api.twitter.com/oauth/request_token", "https://api.twitter.com/oauth/access_token", "https://api.twitter.com/oauth/authorize"); 

Luego realice la autenticación de usuario:

 private void getTwitterAuthorisation() { if (backend.hasNetworkConnection(this, true)) { new Thread(new Runnable() { public void run() { try { mOAuthConsumer = newOAuthConsumer(); String authUrl = httpOauthprovider.retrieveRequestToken(mOAuthConsumer, CALLBACK); startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(authUrl))); } catch (Exception e) { Log.e(TAG, "getTwitterAuthorisation()", e); } } }).start(); } } 

Luego obtenga los tokens:

 TwitterCredentials creds = null; try { httpOauthprovider.retrieveAccessToken(mOAuthConsumer, verifier); final String token = mOAuthConsumer.getToken(); final String secret = mOAuthConsumer.getTokenSecret(); final AccessToken accessToken = new AccessToken(token, secret); final Twitter twitter = TwitterFactory.getSingleton(); twitter.setOAuthConsumer(mOAuthConsumer.getConsumerKey(), mOAuthConsumer.getConsumerSecret()); twitter.setOAuthAccessToken(accessToken); final long twitterId = twitter.getId(); final String twitterScreenName = twitter.getScreenName(); creds = new TwitterCredentials(); creds.oauthToken = token; creds.oauthSecret = secret; creds.twitterId = twitterId; creds.screenName = twitterScreenName; } catch (Exception e) { Log.e(TAG, "doTwitterConnect", e); } return creds; 

Tuve este mismo error y la actualización a la última versión de twitter4j 3.0.5, arregló el problema.

Obtenga lo último aquí http://twitter4j.org/es/index.html#download

Debo mencionar que la versión que estaba ejecutando era twitter4j 3.0.3. Ir a la versión 3.0.5 o 3.0.6 arregló el problema para mí.

  • Android twitter4j subir imagen
  • ¿Cómo utilizar Twitter4j api para responder en un tweet?
  • Uso de las credenciales de Twitter de AccountManager para crear Twitter4J AccessToken
  • Método retrieveRequestToken aumenta "La comunicación con el proveedor de servicios falló: null"
  • TwitterException: No se puede acceder
  • Twitter4j. Realizar consultas y filtrar mensajes por #hashtag
  • Android onNewIntent Uri es siempre nulo
  • Retweet usando Twitter4j Android
  • Conexión a Android con Twitter - Obtener respuesta nula de twitter
  • Uso de la biblioteca de Twitter4j para Android
  • Twitter4J búsqueda de la consulta de Android no devuelve todos los tweets
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.