21.04.2014 Views

Curso-Android-Desarrollo-de-Aplicaciones-Móviles

Curso-Android-Desarrollo-de-Aplicaciones-Móviles

Curso-Android-Desarrollo-de-Aplicaciones-Móviles

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CURSO ANDROID<br />

109<br />

e.printStackTrace();<br />

}<br />

}<br />

});<br />

}<br />

A<strong>de</strong>más <strong>de</strong> este método, vamos a trabajar en onCreate. Primero obtenemos botones y etiquetas (Text-<br />

View) <strong>de</strong> status tanto <strong>de</strong> Facebook como <strong>de</strong> Twitter.<br />

LoginButton mLoginButton = (LoginButton) findViewById(R.id.btnFbLogin);<br />

btnTwLogin = (Button)findViewById(R.id.btnTwLogin);<br />

txtTwStatus = (TextView) this.findViewById(R.id.txtTwStatus);<br />

txtFbStatus = (TextView) this.findViewById(R.id.txtFbStatus);<br />

Luego, construimos nuestro objeto Facebook (parte <strong>de</strong>l SDK <strong>de</strong>scargado) y a partir <strong>de</strong> él un objeto AsyncFacebookRunner<br />

que vamos a utilizar para las peticiones al GraphAPI.<br />

Facebook mFacebook = new Facebook(APP_ID);<br />

mAsyncRunner = new AsyncFacebookRunner(mFacebook);<br />

Vamos a guardar las cre<strong>de</strong>nciales <strong>de</strong> Twitter como preferencias <strong>de</strong> la aplicación (funciona como un<br />

diccionario, key/value), más a<strong>de</strong>lante vemos la forma <strong>de</strong> guardarlas al realizar la autenticación, en<br />

onCreate vamos a recuperarlas y si no existen tenemos un valor por <strong>de</strong>fecto que es un String vacío. Si<br />

existen las cre<strong>de</strong>nciales entonces habilitamos la variable boolean twitter_active.<br />

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);<br />

String stored_keys = prefs.getString(“KEY”, “”);<br />

String stored_secret = prefs.getString(“SECRET”, “”);<br />

if (!stored_keys.equals(“”) && !stored_secret.equals(“”)) {<br />

twitter_active = true;<br />

}<br />

Realizamos un proceso similar para el caso <strong>de</strong> Facebook, aquí es más sencillo porque no es tarea nuestra<br />

la administración <strong>de</strong> las cre<strong>de</strong>nciales, nos apoyamos en el código <strong>de</strong>l ejemplo <strong>de</strong>l SDK. Restauramos la<br />

sesión y luego validamos la misma, en base a esto habilitamos la ban<strong>de</strong>ra facebook_active y si la sesión<br />

está activa entonces mostraremos los datos <strong>de</strong>l usuario llamando a updateFbStatus().<br />

SessionStore.restore(mFacebook, this);<br />

facebook_active = mFacebook.isSessionValid();

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!