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?
- Hacer Android WebView no almacenar cookies o contraseñas
- Obtener Android C2DM (401) No autorizado
- ¿Por qué el flujo oauth2 nativo de Google requiere secreto de cliente?
- Cómo cerrar sesión en LinkedIn usando authrequest usando android?
- Android Tumblr oAuth Confusión
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)
- Los botones 'cancelar' y 'aceptar' de la página de inicio de sesión de Google OAuth no están habilitados desde el 22 de agosto
- Android y OAUTH 2.0
- Android Tumblr Oauth-signpost 401
- ¿Es OAuth en un teléfono móvil usando un servidor proxy demasiado problema?
- GoogleAuthUtil.getToken () devuelve un token no válido ("kid" no se encuentra en la lista de claves públicas y "exp" es dom 18 de enero de 1970)
- ID de Apple a través de OAuth?
- El redireccionamiento de las pestañas personalizadas de Chrome a la aplicación para Android cerrará la aplicación.
- Cómo usar la API de inicio de sesión de Google con Cordova / Phonegap
- ViewPager analógico para paginación a horizontales y verticales
- Comportamiento sorpresa de eclipse para archivos C mientras se utiliza JNI, ¿Por qué?