如何在 Android 中对 Uber SDK 中的用户进行身份验证?

Posted

技术标签:

【中文标题】如何在 Android 中对 Uber SDK 中的用户进行身份验证?【英文标题】:How to authenticate user in Uber SDK in Android? 【发布时间】:2016-10-01 19:10:20 【问题描述】:

参考this link,我将 Uber sdk 集成到我的应用程序中。在我在 Uber 开发者网站上注册我的应用程序之前,我得到了我的客户端 ID 和客户端密码。

我在我的应用程序类中添加了以下代码:

UberSdk.initialize(this, "MY_CLIENT_ID");

UberSdk.setRedirectUri("MY_REDIRECT_URI");

UberSdk.setSandboxMode(true);

然后在我的片段中:

oncreate():

accessTokenManager = new AccessTokenManager(getContext());
    loginManager = new LoginManager(accessTokenManager);
    List<Scope> scopes = new ArrayList<Scope>();
    scopes.add(Scope.PROFILE);
    scopes.add(Scope.RIDE_WIDGETS);

    Date expirationTime = new Date(System.currentTimeMillis());
    String token = "Token";
    AccessToken accessToken = new AccessToken(expirationTime, scopes, token);

    accessTokenManager.setAccessToken(accessToken);

    Log.d("ttt", "accessToken: " + accessTokenManager.getAccessToken());


    loginManager.loginWithScopes(getActivity(), scopes);

onActivityResult():

LoginCallback loginCallback = new LoginCallback() 
    @Override
    public void onLoginCancel() 
        // User canceled login
        Log.d("ttt", " User canceled login " );
        Toast.makeText(getContext(), "User canceled login", Toast.LENGTH_SHORT).show();
    

    @Override
    public void onLoginError(@NonNull AuthenticationError error) 
        // Error occurred during login
        Log.d("ttt", "Error occurred during login" );
        Toast.makeText(getContext(),"Error occurred during login",Toast.LENGTH_SHORT).show();
    

    @Override
    public void onLoginSuccess(@NonNull AccessToken accessToken) 
        // Successful login!  The AccessToken will have already been saved.
        Log.d("ttt", "Successful login! " );
        Toast.makeText(getContext(),"Successful login!",Toast.LENGTH_SHORT).show();
    
;

loginManager.onActivityResult(requestCode, resultCode, data, loginCallback);

我不知道如何添加重定向 uri 以及从哪里获得重定向 uri。它的实际用途是什么(搜索了很多仍然不清楚它的作用)。

单击 Uber 乘车按钮后,它会导航到一些登录活动,并显示一个弹出窗口,提示“验证您的身份时出现问题”。

我在这里做错了什么?

【问题讨论】:

【参考方案1】:

这里有一篇很棒的文章,介绍了在 Oauth 2.0 中重定向 URI 的用途。 What's a redirect URI? how does it apply to ios app for OAuth2.0?.

TLDR:您的应用程序可能存在于 Web 和移动应用程序上,并且重定向 URI 是在流程完成后重定向回的端点。对于移动客户端,您可以在Uber developer dashboard 中轻松地将重定向 URI 设置为“http://localhost”,因为它与网络上的要求不同。

我们正在研究进一步简化此功能,因此请密切关注我们未来的版本!

【讨论】:

非常感谢 tsmith...这些链接很有帮助。

以上是关于如何在 Android 中对 Uber SDK 中的用户进行身份验证?的主要内容,如果未能解决你的问题,请参考以下文章

iOS SDK 中的 Uber 错误代码

当我在我的项目中添加 uber sdk gradle 时,它​​返回 500+ 编译错误

android - 像 uber 应用一样的底页

如何从自定义 Android 应用程序启动 uber eats 应用程序

Android SDK 管理器未显示在 Eclipse 列表中

在Android中如何使用全局变量--Application context (转)