Android
Rückruf-URL
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.