Zoeken…


Voorbeeld van terugbel-URL met Instagram OAuth

Een van de use cases van callback-URL's is OAuth. Laten we dit doen met een Instagram-login: als de gebruiker zijn inloggegevens access_token en op de knop Inloggen klikt, zal Instagram de inloggegevens valideren en een access_token . We hebben dat access_token in onze app.

Voor onze app om naar dergelijke links te kunnen luisteren, moeten we een terugbel-URL toevoegen aan onze Activity . We kunnen dit doen door een <intent-filter/> te voegen aan onze Activity , die zal reageren op die terugbel-URL. Stel dat onze callback-URL appSchema://appName.com . Vervolgens moet u de volgende regels toevoegen aan de gewenste Activity in het bestand Manifest.xml :

<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="appName.com" android:scheme="appSchema"/> 

Verklaring van de bovenstaande regels:

  • <category android:name="android.intent.category.BROWSABLE"/> zorgt ervoor dat de doelactiviteit door een webbrowser kan worden gestart om gegevens weer te geven waarnaar wordt verwezen door een link.
  • <data android:host="appName.com" android:scheme="appSchema"/> specificeert ons schema en de host van onze callback-URL.
  • Alles bij elkaar zorgen deze lijnen ervoor dat de specifieke Activity wordt geopend wanneer de terugbel-URL in een browser wordt aangeroepen.

Om de inhoud van de URL in uw Activity , moet u de methode onResume() als volgt overschrijven:

@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.
} 

Nu hebt u het access_token opgehaald van Instagram, dat wordt gebruikt in verschillende API-eindpunten van Instagram.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow