Bibliotecas OAuth 1.0 para Android (java)

Estoy tratando de acceder a los datos de usuario de un sitio que admita OAuth 1.0 sin devolución de llamada. Estoy utilizando la biblioteca de señalización y no puedo recuperar el token de acceso porque el sitio al que intento conectar no requiere que el usuario especifique un código de verificación. Para obtener el token de acceso desde la señal, parece que necesito proporcionar algún tipo de código de verificación.

MI PREGUNTA: ¿Hay una manera de evitar este paso y todavía obtener un token de acceso?

De lo contrario, recibo el mensaje "Error de autorización (servidor respondió con un 401)". He configurado / registrado mi cliente.

He incluido mi código existente y más detalles sobre el sitio al que intento conectarme (http://www.stepgreen.org – tendrías que crear una cuenta para ver la información a continuación):

Autenticación: OAuth

El método preferido de autenticación de StepGreens es OAuth. Para obtener más información sobre OAuth, visite OAuth.net. Actualmente, soportamos OAuth 1.0 sin devolución de llamada.

Necesitará información adicional para configurar su biblioteca OAuth de su elección:

Solicite un Token de Solicitud: / oauth / request_token solicite un Token de Acceso: / oauth / access_token Autorice URL: / oauth / authorize Para usar OAuth con sus clientes, recuerde configurar sus Clientes.

public static void main(String[] args) throws Exception{ OAuthConsumer consumer = new DefaultOAuthConsumer( CONSUMER_KEY, CONSUMER_SECRET, SignatureMethod.HMAC_SHA1); OAuthProvider provider = new DefaultOAuthProvider(consumer, REQUEST_TOKEN_URL, ACCESS_TOKEN_URL, AUTHORIZE_URL); System.out.println("Fetching request token..."); String authUrl = provider.retrieveRequestToken(OAuth.OUT_OF_BAND); System.out.println("Request token: " + consumer.getToken()); System.out.println("Token secret: " + consumer.getTokenSecret()); System.out.println("Now visit:\n" + authUrl + "\n... and grant this app authorization"); System.out.println("Enter the verification code and hit ENTER when you're done:"); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String verificationCode = br.readLine(); System.out.println("Fetching access token..."); String verificationCode = consumer.getToken(); provider.retrieveAccessToken(verificationCode.trim()); System.out.println("Access token: " + consumer.getToken()); System.out.println("Token secret: " + consumer.getTokenSecret()); URL url = new URL("http://www.stepgreen.org/api/v1/users/username/ted5000s.xml"); HttpURLConnection request = (HttpURLConnection) url.openConnection(); consumer.sign(request); InputStream stream = (InputStream)request.getContent(); System.out.println("Result = " + convertStreamToString(stream)); System.out.println("Sending request..."); request.connect(); System.out.println("Response code: " + request.getResponseCode() + " " + request.getResponseMessage()); 

}

Respuesta:

Recuperar token de solicitud …

Token de solicitud: oculto por razones de privacidad

Token secret: ocultos por razones de privacidad

Ahora visite: http://www.stepgreen.org/oauth/authorize?oauth_token=hidden … y otorgue esta autorización de aplicación Introduzca el código de verificación y pulse ENTER cuando haya terminado:

Obtención de token de acceso … Excepción en el subproceso "main" oauth.signpost.exception.OAuthNotAuthorizedException: Error de autorización (servidor respondió con un 401). Esto puede suceder si la clave del consumidor no era correcta o las firmas no coincidían. En oauth.signpost.basic.DefaultOAuthProvider.retrieveToken (DefaultOAuthProvider.java:126) en oauth.signpost.basic.DefaultOAuthProvider.retrieveAccessToken (DefaultOAuthProvider.java:96) en Test.main (Test.java:89)

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.