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