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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow