#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, чтобы получить токен доступа. Затем вы можете предоставить этот токен доступа своему клиенту.