Android
URL de devolución de llamada
Buscar..
Ejemplo de URL de devolución de llamada con Instagram OAuth
Uno de los casos de uso de las URL de devolución de llamada es OAuth. Hagamos esto con un inicio de sesión en Instagram: si el usuario ingresa sus credenciales y hace clic en el botón Iniciar sesión , Instagram validará las credenciales y devolverá un access_token
. Necesitamos ese access_token
en nuestra aplicación.
Para que nuestra aplicación pueda escuchar dichos enlaces, debemos agregar una URL de devolución de llamada a nuestra Activity
. Podemos hacer esto agregando un <intent-filter/>
a nuestra Activity
, que reaccionará a esa URL de devolución de llamada. Supongamos que nuestra URL de devolución de llamada es appSchema://appName.com
. Luego, debe agregar las siguientes líneas a su Activity
deseada en el archivo Manifest.xml :
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="appName.com" android:scheme="appSchema"/>
Explicación de las líneas anteriores:
-
<category android:name="android.intent.category.BROWSABLE"/>
hace que la actividad de destino se inicie mediante un navegador web para mostrar los datos a los que se hace referencia en un enlace. -
<data android:host="appName.com" android:scheme="appSchema"/>
especifica nuestro esquema y host de nuestra URL de devolución de llamada. - En conjunto, estas líneas harán que la
Activity
específica se abra cada vez que se llame a la URL de devolución de llamada en un navegador.
Ahora, para obtener el contenido de la URL en su Activity
, debe anular el método onResume()
siguiente manera:
@Override
public void onResume() {
// The following line will return "appSchema://appName.com".
String CALLBACK_URL = getResources().getString(R.string.insta_callback);
Uri uri = getIntent().getData();
if (uri != null && uri.toString().startsWith(CALLBACK_URL)) {
String access_token = uri.getQueryParameter("access_token");
}
// Perform other operations here.
}
Ahora ha recuperado el access_token
de Instagram, que se usa en varios puntos finales API de Instagram.