Android
Adres zwrotny
Szukaj…
Przykład adresu URL wywołania zwrotnego z Instagram OAuth
Jednym z przypadków użycia zwrotnych adresów URL jest OAuth. Zróbmy to przy logowaniu na Instagramie: jeśli użytkownik wprowadzi swoje dane uwierzytelniające i kliknie przycisk Zaloguj się , Instagram zweryfikuje dane uwierzytelniające i zwróci access_token
. Potrzebujemy tego access_token
w naszej aplikacji.
Aby nasza aplikacja mogła słuchać takich linków, musimy dodać adres URL wywołania zwrotnego do naszej Activity
. Możemy to zrobić, dodając <intent-filter/>
do naszej Activity
, która zareaguje na ten adres zwrotny. Załóżmy, że naszym zwrotnym adresem URL jest appSchema://appName.com
. Następnie musisz dodać następujące wiersze do żądanego Activity
w pliku Manifest.xml :
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="appName.com" android:scheme="appSchema"/>
Objaśnienie powyższych linii:
-
<category android:name="android.intent.category.BROWSABLE"/>
sprawia, że aktywność docelowa pozwala się uruchomić przez przeglądarkę internetową w celu wyświetlenia danych, do których odwołuje się łącze. -
<data android:host="appName.com" android:scheme="appSchema"/>
określa nasz schemat i host naszego adresu URL wywołania zwrotnego. - Wszystkie te wiersze spowodują otwarcie określonego
Activity
za każdym razem, gdy wywoływany jest adres URL wywołania zwrotnego w przeglądarce.
Teraz, aby uzyskać zawartość adresu URL w Activity
, należy zastąpić onResume()
w następujący sposób:
@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.
}
Teraz odzyskałeś access_token
z Instagrama, który jest używany w różnych punktach końcowych API Instagram.