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");
// ...
}
});