Ошибка бронирования Uber SDK (0.5.4) — требуется хотя бы одна область. Доступные области, код: неавторизованный

#android #uber-api

#Android #uber-api

Вопрос:

Ошибка бронирования Uber SDK 0.5.4

Следующий код возвращает ошибки:

 configuration = new SessionConfiguration.Builder()
            .setClientId(HostUrl.LIVE_CLIENT_ID)
            .setRedirectUri(HostUrl.Redirect_Uri)
            .setServerToken(HostUrl.Uber_server_token)
            .setClientSecret("xxxxx")
            .setEnvironment(SessionConfiguration.Environment.PRODUCTION)
            .setEndpointRegion(SessionConfiguration.EndpointRegion.WORLD)
            .setScopes(Arrays.asList(Scope.PROFILE, Scope.PLACES))
            .build();
  

 UberSdk.initialize(configuration);

    accessTokenManager = new AccessTokenManager(LoginNetworks.this);
    mUberLoginManager = new LoginManager(accessTokenManager,
            new SampleLoginCallback(),
            configuration,
            CUSTOM_BUTTON_REQUEST_CODE);
  

 mUberLoginManager.loginForImplicitGrant(LoginNetworks.this);
  

Ошибка

{ сообщение: Требуется хотя бы одна область. Доступные области, код: неавторизованный }

при изменении области, как показано ниже:

 .setScopes(Arrays.asList(Scope.PROFILE, Scope.REQUEST))
  

Ошибка

ошибка входа в систему (НЕИЗВЕСТНО).

Любая помощь! Заранее спасибо.

Комментарии:

1. Запрашивали ли вы доступ к области запроса с панели мониторинга разработчика? Используете ли вы свою учетную запись разработчика для тестирования?

2. Привет, @dustin-whittle, спасибо за ваше замечание. Для тестирования мы используем учетную запись разработчика. У нас есть полный доступ к request и request_receipt на панели управления разработчика Uber.

Ответ №1:

Похоже, вы входите в систему, используя неявное предоставление, которое не поддерживает REQUEST область. REQUEST это привилегированная область (смотрите больше информации здесь), поэтому для входа в систему вам нужно будет использовать либо предоставление кода авторизации, либо единый вход.

Комментарии:

1. Привет @john-brophy, спасибо за ваши комментарии. Проверит конфигурацию и опубликует результаты. Доброго вам дня.

2. Мы перенаправляем в приложение uber с помощью единого входа, используя это: mUberLoginManager.login (контекст); Но мы хотим войти в систему с помощью Webview в нашем приложении. Итак, если мы используем mUberLoginManager.loginForAuthorizationCode (контекст); Мы получаем AuthorizationCode, но нам нужен accessToken для бронирования, тогда как мы могли бы получить требуемый accessToken, используя это:

3. Итак, если вы используете предоставление кода авторизации, то вам необходимо получить токен доступа из вашего бэкэнда. При входе клиента на ваш сервер будет предоставлен код авторизации, а затем ваш сервер обменяет его с сервером Uber oauth, чтобы получить токен доступа. Затем вы можете предоставить этот токен доступа своему клиенту.