仅使用box.net jar需要oauth-v2的示例登录代码

时间:2013-09-19 05:07:44

标签: android box-api

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

2 个答案:

答案 0 :(得分: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.
        }                              
    }
}

答案 1 :(得分:0)

可能你已经解决了这个问题,因为这个问题已经很久了。但只是为了更准确(我发现自己处于一个非常相似的问题)。

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