几年来,我一直在使用位于https://github.com/uber/rides-android-sdk处的Uber SDK,它一直运行良好,但是当我在用户投诉后立即对其进行测试时,发现登录无法连接。在我自己的设备上以调试方式加载它之后,我发现它引发了INVALID_SCOPE错误。我发送的范围是允许的常规范围的一部分,而我直接使用示例中的代码:
config = new SessionConfiguration.Builder()
.setClientId(getString(R.string.uberClientId)) //This is necessary
.setRedirectUri(getString(R.string.uberRedirectURI)) //This is necessary if you'll be using implicit grant
.setServerToken(getString(R.string.uberServerToken))
.setClientSecret(((MyApplication)getApplication()).getUberSecret())
.setEnvironment(SessionConfiguration.Environment.PRODUCTION) //Useful for testing your app in the sandbox environment
.setScopes(Arrays.asList(Scope.PROFILE, Scope.RIDE_WIDGETS)) //Your scopes for authentication here
.build();
uberConnect.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AccessTokenStorage accessTokenStorage = new AccessTokenManager(context);
loginManager = new LoginManager(accessTokenStorage, new LoginCallback() {
@Override
public void onLoginCancel() {
System.out.println();
}
@Override
public void onLoginError(@NonNull AuthenticationError error) {
System.out.println();
}
@Override
public void onLoginSuccess(@NonNull AccessToken accessToken) {
//success
}
@Override
public void onAuthorizationCodeReceived(@NonNull String authorizationCode) {
System.out.println();
}
}, config, 555);
loginManager.login(context);
}
});
我不确定是什么原因导致它不再起作用。我剩下的一个猜测是,它与Uber应用程序的最新更新有关,导致它不再与SDK正确集成。我无法确认这一点,但这似乎是唯一剩下的可能性。