Flickr Oauth Conectarse con Scribe Library
Soy bastante nuevo en Android, por favor perdone cualquier error.
package net.schwiz.oauth; import org.json.JSONException; import org.json.JSONObject; import org.scribe.builder.ServiceBuilder; import org.scribe.builder.api.TwitterApi; import org.scribe.model.OAuthRequest; import org.scribe.model.Response; import org.scribe.model.Token; import org.scribe.model.Verb; import org.scribe.model.Verifier; import org.scribe.oauth.OAuthService; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.TextView; public class Main extends Activity { final static String APIKEY = "XXXXXXXXXXXXXXXXXXXX"; final static String APISECRET = "XXXXXXXXXXXXXXXXXXXX"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView textView = (TextView)findViewById(R.id.textview); final WebView webview = (WebView) findViewById(R.id.webview); if(APIKEY == null || APISECRET == null){ textView.setText("You must enter your own APIKEY and SECRET to use this demo. dev.twitter.com"); webview.setVisibility(View.GONE); return; } //set up service and get request token as seen on scribe website //https://github.com/fernandezpablo85/scribe-java/wiki/Getting-Started final OAuthService s = new ServiceBuilder() .provider(TwitterApi.class) .apiKey(APIKEY) .apiSecret(APISECRET) .callback(CALLBACK) .build(); final Token requestToken = s.getRequestToken(); final String authURL = s.getAuthorizationUrl(requestToken); //attach WebViewClient to intercept the callback url webview.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { //check for our custom callback protocol otherwise use default behavior if(url.startsWith("oauth")){ //authorization complete hide webview for now. webview.setVisibility(View.GONE); Uri uri = Uri.parse(url); String verifier = uri.getQueryParameter("oauth_verifier"); Verifier v = new Verifier(verifier); //save this token for practical use. Token accessToken = s.getAccessToken(requestToken, v); if(uri.getHost().equals("twitter")){ OAuthRequest req = new OAuthRequest(Verb.GET, "URL here"); s.signRequest(accessToken, req); Response response = req.send(); try { JSONObject json = new JSONObject(response.getBody()); textView.setText(json.toString(3)); } catch (JSONException e) { e.printStackTrace(); } } return true; } return super.shouldOverrideUrlLoading(view, url); } }); //send user to authorization page webview.loadUrl(authURL); } }
He intentado este código, su funcionamiento muy bien con gorjeo, pero ahora quiero authenticar el usuario usando Flickr, el código antedicho no está trabajando en ese caso, la condición if(url.startsWith("oauth"))
no está trabajando la manera Supuse. Por favor ayuda.
- La consulta MMS sólo devuelve el tamaño del mensaje de los archivos adjuntos enviados
- Cómo mostrar heart sign in android usando Html.fromHtml
- ¿Qué es un reemplazo adecuado para Android ActionBar?
- Android piensa que no estoy cerrando mi base de datos! ¿Por qué?
- Android / Java: comprueba si url es url válida de youtube
- ¿Cómo determinar el recuento de métodos de la aplicación?
- Progreso intermedio no funciona con ActionBarSherlock ejecutándose en Gingerbread
- Android: Establecer el parámetro de peso mediante programación hace lo contrario de lo que quiero
- Especificar argumentos Cipher.getInstance ()?
- Android: Deshabilitar casillas de verificación sin cambio gráfico?
- En evento de zoom para google maps en android
- Crash en Android 2.3.3 después de actualizar a la biblioteca de soporte 25.0.0 (java.lang.NoSuchMethodError: android.view.View.isAttachedToWindow)
- Android - Actualizar datos en un AlertDialog?
He descubierto el problema! Cuando llamo al método webview.loadUrl(authURL);
la url de flickr http://www.flickr.com cambia a m.flickr.com que desencadena el evento shouldOverrideUrlLoading
antes de cualquier usuario de inicio de sesión / autenticación.
if(authURL.charAt(7)=='w') { authURL=authURL.replaceFirst("www", "m"); }
resuelto mi problema.
- Cómo compartir gif a facebook, twitter etc en Android?
- MultiToque Android | Acción de cada punto de contacto