如何在适用于Android的DropboxAPI v2中进行身份验证?

时间:2017-05-09 13:02:00

标签: android authentication dropbox

我刚刚开始,我正在学习本教程

https://www.dropbox.com/developers/documentation/java#tutorial

但是没有登录。没有任何东西要求您输入用户名,密码。这意味着我实际上无法通过"分享到Dropbox"每个应用程序获得一个GUI。选项有。

我是否坚持使用一个帐户?我是否必须找到一种方法来获取一个人的ACCESS_TOKEN,或者是否有更优雅的GUI解决方案(例如Google Drive及其意图发送者)?

2 个答案:

答案 0 :(得分:2)

要在Android中使用Dropbox API v2,您应该使用API v2 Java SDK。有一个example Android app使用它包含在SDK中。您应该参考它作为如何实现应用程序授权流程的示例,该流程通过OAuth 2完成。这要求用户通过Dropbox授权您的应用程序,必要时登录Dropbox。之后,您的应用可以存储并重新使用该用户生成的访问令牌,如example does here

以这种方式实施它允许任何用户将他们的Dropbox帐户连接到您的应用。如果需要,您还可以为每个应用实例处理多个帐户。

答案 1 :(得分:1)

不幸的是,就此流程的文档而言,没有太多内容。以下是我能够成功验证用户身份的方法。首先,您希望使用Dropbox的auth活动启动身份验证流程:

import com.dropbox.core.android.Auth
....
Auth.startOAuth2Authentication(context, context.getString(R.string.dbx_api_app_key))

用户成功通过身份验证后,请在您启动Dropbox活动的活动的onResume方法中调用以下方法:

@Override
public void onResume() {
    super.onResume();
    String token = Auth.getOAuth2Token()
}

在您创建token的实例时,应使用此处收到的DbxClientV2

DbxRequestConfig requestConfig = DbxRequestConfig.newBuilder(MyUtils.getVersionText(context))
                .withHttpRequestor(OkHttp3Requestor(OkHttp3Requestor.defaultOkHttpClient()))
                .build()

DbxClientV2 dbxClient = DbxClientV2(requestConfig, accessToken)

您的build.gradle文件中还需要以下依赖项:

implementation 'com.squareup.okhttp:okhttp:2.7.5'
implementation 'com.squareup.okhttp3:okhttp:3.7.0'