Suche…


Callback-URL-Beispiel mit Instagram OAuth

Eine der Anwendungsfälle von Callback-URLs ist OAuth. Lassen Sie uns tun dies mit einer Instagram Anmeldung: Wenn der Benutzer ihre Anmeldeinformationen ein und klickt auf die Schaltfläche Anmelden, Instagram die Anmeldeinformationen validieren und gibt eine access_token . Wir brauchen das access_token in unserer App.

Damit unsere App sich solche Links anhören kann, müssen wir unserer Activity eine Rückruf-URL hinzufügen. Wir können dies tun, indem Sie unserer Activity einen <intent-filter/> hinzufügen, der auf diese Callback-URL reagiert. Angenommen, unsere Rückruf-URL lautet appSchema://appName.com . Dann müssen Sie der gewünschten Activity in der Datei Manifest.xml die folgenden Zeilen hinzufügen:

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

Erklärung der obigen Zeilen:

  • <category android:name="android.intent.category.BROWSABLE"/> dass die <category android:name="android.intent.category.BROWSABLE"/> von einem Webbrowser gestartet wird, um Daten anzuzeigen, auf die durch einen Link verwiesen wird.
  • <data android:host="appName.com" android:scheme="appSchema"/> gibt unser Schema und den Host unserer Callback-URL an.
  • Alles in allem bewirken diese Zeilen, dass die spezifische Activity geöffnet wird, wenn die Rückruf-URL in einem Browser aufgerufen wird.

Um nun den Inhalt der URL in Ihrer Activity onResume() , müssen Sie die onResume() -Methode wie folgt überschreiben:

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

Nun haben Sie das access_token von Instagram abgerufen, das in verschiedenen API-Endpunkten von Instagram verwendet wird.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow