Перенаправить URL на мое приложение после аутентификации 2.0 в Uber api

#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 / … .