Android перенаправить URI

Я работаю с API Instagram, и я не понимаю, что я должен вставить для API перенаправления. На данный момент я просто вставил в https://127.0.0.1/

Но я не очень понимаю. Кроме того, как только я получаю экран разрешения / отмены и нажимаю кнопку "Разрешить", появляется сообщение об ошибке, в котором говорится, что я не могу перейти по этому адресу, но я также вижу код авторизации, добавленный к адресу. Так как же я могу перенаправить обратно с моего URI перенаправления? Как я могу сказать Android, что после нажатия кнопки пользователя позволяют вернуться в приложение, используйте код для дальнейшей аутентификации?

Я уверен, что вы скажете что-то вроде создания моей собственной схемы / фильтров намерений и т. Д., Но, пожалуйста, будьте немного более благосклонны, я новичок, и я не понимаю, и я действительно исследовал их.

Мой метод резюме ниже

@Override
    protected void onResume() {
        super.onResume();

        // the intent filter defined in AndroidManifest will handle the return from ACTION_VIEW intent
        Uri uri = getIntent().getData();
        if (uri != null && uri.toString().startsWith(redirectUri)) {
            // use the parameter your API exposes for the code (mostly it's "code")
            String code = uri.getQueryParameter("code");
            if (code != null) {
                // get access token
                LoginService loginService =
                        ServiceGenerator.createService(LoginService.class, clientId, clientSecret);
                AccessToken accessToken = loginService.getAccessToken(code, "authorization_code");
            } else if (uri.getQueryParameter("error") != null) {
                // show an error message here
            }
        }
    }

This is my manifest snippet dealing with intent filters 


        <activity
            android:name=".LoginActivity"
            android:label="@string/title_activity_login" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data
                    android:host="redirecturi"
                    android:scheme="your" />
            </intent-filter>
        </activity>

1 ответ

Решение

Вы должны настроить прослушиватель событий в представлении браузера и проверить code в параметре URL, если URL-адрес равен redirect_uri, а затем выполните запрос POST для URL-адреса аутентификации, используя code а также client_secret как задокументировано в аутентификации Instagram

что-то вроде этого:

webView.setWebViewClient(new WebViewClient() {
   public void onPageFinished(WebView view, String url) {
        String code = url.getQueryParameter("code");
        // ...
    }
});
Другие вопросы по тегам