Android
URL di richiamata
Ricerca…
Esempio di URL di callback con Instagram OAuth
Uno dei casi d'uso degli URL di callback è OAuth. Facciamo questo con un login Instagram: se l'utente inserisce le proprie credenziali e fa clic sul pulsante Accedi , Instagram convaliderà le credenziali e restituirà un access_token
. Abbiamo bisogno di access_token
nella nostra app.
Affinché la nostra app sia in grado di ascoltare tali collegamenti, è necessario aggiungere un URL di richiamata alla nostra Activity
. Possiamo farlo aggiungendo un <intent-filter/>
alla nostra Activity
, che reagirà a tale URL di callback. Supponiamo che il nostro URL di richiamata sia appSchema://appName.com
. Poi bisogna aggiungere le seguenti righe al tuo desiderato Activity
nel file Manifest.xml:
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="appName.com" android:scheme="appSchema"/>
Spiegazione delle righe sopra:
-
<category android:name="android.intent.category.BROWSABLE"/>
rende l'attività di destinazione autorizzata a essere avviata da un browser Web per visualizzare i dati a cui fa riferimento un collegamento. -
<data android:host="appName.com" android:scheme="appSchema"/>
specifica il nostro schema e host del nostro URL di callback. - Tutte insieme, queste linee faranno aprire l'
Activity
specifica ogni volta che l'URL di richiamata viene richiamato in un browser.
Ora, per ottenere il contenuto dell'URL nella tua Activity
, devi sovrascrivere il metodo onResume()
come segue:
@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.
}
Ora hai recuperato access_token
da Instagram, utilizzato in vari endpoint API di Instagram.