Android
URL de rappel
Recherche…
Exemple d'URL de rappel avec Instagram OAuth
Un des cas d'utilisation des URL de rappel est OAuth. Faisons-le avec une connexion Instagram: Si l'utilisateur entre ses informations d'identification et clique sur le bouton Connexion , Instagram valide les informations d'identification et retourne un access_token
. Nous avons besoin de cet access_token
dans notre application.
Pour que notre application puisse écouter de tels liens, nous devons ajouter une URL de rappel à notre Activity
. Nous pouvons le faire en ajoutant un <intent-filter/>
à notre Activity
, qui réagira à cette URL de rappel. Supposons que notre URL de rappel soit appSchema://appName.com
. Ensuite, vous devez ajouter les lignes suivantes à l' Activity
souhaitée dans le fichier Manifest.xml :
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="appName.com" android:scheme="appSchema"/>
Explication des lignes ci-dessus:
-
<category android:name="android.intent.category.BROWSABLE"/>
permet à l’activité cible d’être lancée par un navigateur Web pour afficher les données référencées par un lien. -
<data android:host="appName.com" android:scheme="appSchema"/>
spécifie notre schéma et l'hôte de notre URL de rappel. - Tous ensemble, ces lignes entraînent l'ouverture de l'
Activity
spécifique chaque fois que l'URL de rappel est appelée dans un navigateur.
Maintenant, pour obtenir le contenu de l'URL dans votre Activity
, vous devez remplacer la méthode onResume()
comme suit:
@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.
}
Vous avez maintenant récupéré le access_token
d'Instagram, qui est utilisé dans divers points de terminaison d'API d'Instagram.