Sök…


Exempel på återuppringning av URL med Instagram OAuth

Ett av användningsfallen av återuppringningsadresser är OAuth. Låt oss göra detta med en Instagram-inloggning: Om användaren anger sina inloggningsuppgifter och klickar på inloggningsknappen kommer Instagram att validera inloggningsinformationen och returnera en access_token . Vi behöver den access_token i vår app.

För att vår app ska kunna lyssna på sådana länkar måste vi lägga till en återuppringningsadress till vår Activity . Vi kan göra detta genom att lägga till ett <intent-filter/> till vår Activity , som kommer att reagera på den återuppringningsadressen. Antag att vår webbadress för återuppringning är appSchema://appName.com . Då måste du lägga till följande rader till önskad Activity i filen Manifest.xml :

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

Förklaring av raderna ovan:

  • <category android:name="android.intent.category.BROWSABLE"/> gör att målaktiviteten tillåter sig att startas av en webbläsare för att visa data som refereras till av en länk.
  • <data android:host="appName.com" android:scheme="appSchema"/> anger vårt schema och värd för vår återuppringnings-URL.
  • Sammantaget kommer dessa rader att göra att den specifika Activity öppnas närhelst återuppringningsadressen anropas i en webbläsare.

För att få innehållet i webbadressen i din Activity måste du nu åsidosätta onResume() enligt följande:

@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 har du tagit fram access_token från Instagram, som används i olika API-slutpunkter på Instagram.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow