无法通过程序进行Uber登录

huangapple 未分类评论57阅读模式
英文:

Unable to perform Uber login programmatically

问题

我正在尝试集成Uber SDK到我的应用程序,并遵循他们的说明。

  • 在他们的开发者仪表板中注册了我的应用程序,使用了应用程序签名、客户端ID、客户端签名和重定向URI。
  • 实例化了他们的LoginManager类,并调用了登录方法。

当我在Android Studio的模拟器中运行应用程序时,它卡在了:
https://login.uber.com

当我在实际设备上运行时,我从Uber收到了错误消息:
无法连接
并且要求我稍后重试。

导致登录的我的代码片段:

SessionConfiguration config = new SessionConfiguration.Builder()
    // 这是必需的
    .setClientId("用于共享的已删除")
    .setClientSecret("用于共享的已删除")
    // 如果您将使用隐式授权,则这是必需的
    .setRedirectUri("用于共享的已删除")
    // 在此处添加身份验证的范围
    .setScopes(Arrays.asList(Scope.PROFILE, Scope.RIDE_WIDGETS))
    .build();

UberSdk.initialize(config);

LoginCallback loginCallback = 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) {
        // 登录成功!AccessToken已经被保存。
        System.out.println("登录成功!");
    }

    @Override
    public void onAuthorizationCodeReceived(@NonNull String authCode) {
        System.out.println("收到授权代码");
    }
};

AccessTokenStorage accessTokenStorage = new AccessTokenManager(this);
loginManager = new LoginManager(accessTokenStorage, loginCallback);

loginManager.login(this);

请帮忙解决。

英文:

I am trying to integrate my app using Uber SDK and I followed their instructions.

  • Registered my app in their developer dashboard with app signature, Client Id, Client Signature and Redirect URI
  • Instantiated their LoginManager class and am calling the login method.

When I run the app in simulator in Android studio, it gets stuck at:
https://login.uber.com

When I run it on my actual device, I get the error from Uber:
Unable to Connect
and it asks me to try again later.

My code snippet leading to log in:

SessionConfiguration config = new SessionConfiguration.Builder()
    // This is necessary
    .setClientId("removed for sharing")
    .setClientSecret("removed for sharing")
    // This is necessary if you'll be using implicit grant
    .setRedirectUri("removed for sharing")
    // Your scopes for authentication here      
    .setScopes(Arrays.asList(Scope.PROFILE, Scope.RIDE_WIDGETS))
    .build();

UberSdk.initialize(config);

LoginCallback loginCallback = new LoginCallback() {
    @Override
    public void onLoginCancel() {
        // User canceled login
        System.out.println("User Cancelled login");
    }

    @Override
    public void onLoginError(@NonNull AuthenticationError error) {
        // Error occurred during login
        System.out.println("User login error");
    }

    @Override
    public void onLoginSuccess(@NonNull AccessToken accessToken) {
        // Successful login! The AccessToken will have already been saved.
        System.out.println("Login success!");
    }

    @Override
    public void onAuthorizationCodeReceived(@NonNull String authCode) {
        System.out.println("Auth code received");
    }
};

AccessTokenStorage accessTokenStorage = new AccessTokenManager(this);
loginManager = new LoginManager(accessTokenStorage, loginCallback);

loginManager.login(this);

Please help.

huangapple
  • 本文由 发表于 2020年7月27日 19:21:56
  • 转载请务必保留本文链接:https://java.coder-hub.com/63114242.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定