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'
Activityspé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.