Я настраиваю uber sdk с областью запроса (с ограничениями). В методе обратного вызова LoginManager onAuthorizationCodeReceived() я получаю код авторизации в качестве параметра, тогда как метод обратного вызова onLoginSuccess() не вызывается.
Вот мой код...
config = initialiseUberSDK();
accessTokenManager = new AccessTokenManager(this);
loginManager = new LoginManager(accessTokenManager,
new LoginCallback() {
@Override
public void onLoginCancel() {
Toast.makeText(CustomActivity2.this, "Login cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onLoginError(@NonNull AuthenticationError error) {
Toast.makeText(CustomActivity2.this,
"Error: "+error.name(), Toast.LENGTH_LONG)
.show();
}
@Override
public void onLoginSuccess(@NonNull AccessToken accessToken) {
Toast.makeText(CustomActivity2.this, "Login success",
Toast.LENGTH_LONG)
.show();
createSession();
}
@Override
public void onAuthorizationCodeReceived(@NonNull String authorizationCode) {
Toast.makeText(CustomActivity2.this, "Your Auth code is: "+authorizationCode,
Toast.LENGTH_LONG)
.show();
}
},
config,
1113).setRedirectForAuthorizationCode(true);
customButton = (Button) findViewById(R.id.button);
customButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loginManager.login(CustomActivity2.this);
}
});
А вот метод initialiseUberSDK()...
private SessionConfiguration initialiseUberSDK() {
config = new SessionConfiguration.Builder()
.setClientId(getResources().getString(R.string.client_id))
// .setServerToken(getResources().getString(R.string.server_token))
// .setClientSecret(getResources().getString(R.string.client_secret))
.setRedirectUri(getResources().getString(R.string.redirect_url))
.setEnvironment(SessionConfiguration.Environment.SANDBOX)
.setScopes(Arrays.asList(Scope.PROFILE, Scope.RIDE_WIDGETS, Scope.REQUEST))
.build();
// UberSdk.initialize(config);
return config;
}
Здесь метод onLoginSuccess() никогда не вызывается. Вызывается только метод onAuthorizationCodeReceived() (при этом объект токена доступа имеет значение null).
мой вопрос
как сгенерировать токен доступа с помощью кода авторизации?
Ниже приведен java-документ метода onAuthorizationCodeReceived()...
*
public void onAuthorizationCodeReceived(@NonNull String авторизацияCode)
Описание, скопированное из интерфейса: LoginCallback Вызывается, когда код авторизации возвращается в URI перенаправления. AccessToken необходимо получить с помощью Client Secret, см. https://developer.uber.com/docs/authentication#section-step-two-receive-redirect Задается: onAuthorizationCodeReceived в интерфейсе LoginCallback Параметры: authorizationCode — код авторизации, который можно использовать для получения AccessToken.
*