2

我正在尝试将 box.net 集成到我的 android 应用程序中以进行云访问。我只包含了 boxandroidlibraryv2.jar 和 BoxJavaLibraryV2.jar(通过在 eclipse 中构建源代码获取),而不包括https://github.com/box/box-android-sdk-v2中的源代码)。. 我需要示例代码来仅通过使用这些 jar 对用户进行身份验证。任何人都可以分享示例源代码。

4

2 回答 2

0

最简单的身份验证方法是使用 SDK 中包含的 OAuthActivity。将其添加到您的清单中以使用它。

// If you don't have a server redirect url, use this instead:
// Intent intent = createOAuthActivityIntent(context, clientId, clientSecret, false, "http://localhost"); 
Intent intent = OAuthActivity.createOAuthActivityIntent(this, clientId, 
    clientSecret);
startActivityForResult(intent);

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == Activity.RESULT_CANCELED) {
        // Get the error message for why authentication failed.
        String failMessage = data.getStringExtra(OAuthActivity.ERROR_MESSAGE);
        // Implement your own logic to handle the error.
       handleFail(failMessage);
    } else {
        // You will get an authenticated oath token object back upon success.
        BoxAndroidOAuthData oauth = data.getParcelableExtra(OAuthActivity.BOX_CLIENT_OAUTH);
                // If you don't want to supply a customized hub or parser, use null to fall back to defaults.
                BoxAndroidClient client = new BoxAndroidClient(clientId, clientSecret, null, null, null);
                client.authenticate(oauth);
        youOwnMethod(client);
    }
}

我们的 sdk 会在 OAuth 访问令牌过期时自动刷新。您将需要收听刷新事件并在刷新后更新您存储的令牌。

boxClient.addOAuthRefreshListener(OAuthRefreshListener listener) {
    new OAuthRefreshListener() {
        @Override
        public void onRefresh(IAuthData newAuthData) {
        BoxOAuthToken oauthObject = boxClient.getAuthData();
            // TODO: save the auth data.
        }                              
    }
}
于 2014-07-11T01:20:07.827 回答
0

由于这个问题已经提出了很长时间,您可能已经解决了这个问题。但只是为了更准确地说(我发现自己遇到了一个非常相似的问题)。

您不能在项目中使用 boxandroidlibraryv2.jar,因为它有一些资源(用于进行身份验证询问用户/密码)。

于 2014-08-07T14:14:17.933 回答