Android
Обратный вызов
Поиск…
Пример обратного вызова с помощью Instagram OAuth
Одним из вариантов использования обратных вызовов является OAuth. Давайте сделаем это с помощью входа в Instagram: если пользователь вводит свои учетные данные и нажимает кнопку « Вход» , Instagram будет проверять учетные данные и возвращать access_token
. Нам нужно, чтобы access_token
в нашем приложении.
Чтобы наше приложение могло слушать такие ссылки, нам нужно добавить URL-адрес обратного вызова к нашей Activity
. Мы можем сделать это, добавив в нашу Activity
<intent-filter/>
, который будет реагировать на этот URL обратного вызова. Предположим, что наш URL обратного вызова - appSchema://appName.com
. Затем вы должны добавить следующие строки в свою желаемую Activity
в файле Manifest.xml :
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="appName.com" android:scheme="appSchema"/>
Объяснение строк выше:
-
<category android:name="android.intent.category.BROWSABLE"/>
позволяет целевой активности разрешить запуск веб-браузера для отображения данных, на которые ссылается ссылка. -
<data android:host="appName.com" android:scheme="appSchema"/>
указывает нашу схему и хост нашего URL-адреса обратного вызова. - Все вместе эти строки вызовут открытие определенного
Activity
, когда URL-адрес обратного вызова вызывается в браузере.
Теперь, чтобы получить содержимое URL-адреса в вашей Activity
, вам необходимо переопределить метод onResume()
следующим образом:
@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.
}
Теперь вы получили access_token
из Instagram, который используется в различных конечных точках API Instagram.