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
Activitygeö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.