#android #web-services #url-redirection #uber-api
#Android #веб-сервисы #перенаправление #uber-api
Вопрос:
Я интегрирую uber api с моим приложением для Android. В случае аутентификации 2.0, какой я должен указать обратный URL-адрес для перенаправления после успешной авторизации от uber для входа в мое приложение. вот моя активность входа в uber
WebView webView = (WebView) findViewById(R.id.webview);
webView.setWebViewClient(new WebViewClient());
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setLoadWithOverviewMode(true);
settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webView.setScrollbarFadingEnabled(false);
progressBar = ProgressDialog.show(UberLoginActivity.this, "Please wait", "Loading...");
webView.loadUrl("https://login.uber.com/oauth/v2/authorize?client_id=MDyPSkkFFSZHKcntIg9j2mhM7XP665R1amp;response_type=code");
SessionConfiguration config = new SessionConfiguration.Builder()
.setClientId("***********") //This is necessary
.setRedirectUri("what should be added ") //This is necessary if you'll be using implicit grant
.setServerToken("*********************")
.setEnvironment(SessionConfiguration.Environment.SANDBOX) //Useful for testing your app in the sandbox environment
.setScopes(Arrays.asList(Scope.PROFILE, Scope.RIDE_WIDGETS)) //Your scopes for authentication here
.build();
webView.setWebViewClient(new WebViewClient()
{
public void onPageFinished(WebView view, String url)
{
if (progressBar.isShowing())
{
progressBar.dismiss();
}
}
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl)
{
view.loadUrl("about:blank");
Toast.makeText(getApplication(), " Please check network connectivity", Toast.LENGTH_LONG).show();
super.onReceivedError(view, errorCode, description, failingUrl);
}
});
Ответ №1:
Для обработки на Android лучше использовать единый вход. Ознакомьтесь с соответствующим кодом в руководстве по виджетам для Android: https://developer.uber.com/docs/ride-requests/tutorials/widget/android#login
Это будет использовать приложение uber для аутентификации пользователя, в противном случае перенаправит в app Store. Пожалуйста, проследите, если вы все еще предпочитаете использовать webview.
Комментарии:
1. Но я получаю сообщение об ошибке — недопустимые учетные данные auth 2.0 .. !
2. Я не использую виджет uber. Я использую интеграцию с клиентской библиотекой uber. Мне нужен формат для перенаправления uri
3. Используя клиентскую библиотеку, вы можете реализовать единый вход, что улучшит работу ваших пользователей. В противном случае посмотрите, как правильно форматировать ваши запросы oauth: developer.uber.com/docs/ride-requests/guides/authentication / … .