앱 품질을 향상시키기 위해 저는 단위 테스트와 UI 테스트를 테스트하고 있습니다. 내가 Dropbox를 지원하는 데있어 테스트하고 싶다. 테스트하기 전에 Dropbox 계정에 권한을 부여해야한다. (안드로이드 앱에서 사용자가 파일을 저장하고, 이름을 바꾸고, 기본 파일을 읽을 수있다. 루틴).Dropbox Java/Android SDK v2에서 자동으로 인증하는 방법은 무엇입니까?
드롭 박스는 예제와 함께 Java/Android SDK v2 제공하지만, 심지어 command-line tool는 일부 수동 작업 필요 - URL을 선택하고 계정을 사용하여 열려있는 브라우저 응용 프로그램 :
// Run through Dropbox API authorization process
DbxRequestConfig requestConfig = new DbxRequestConfig("examples-authorize");
DbxWebAuth webAuth = new DbxWebAuth(requestConfig, appInfo);
DbxWebAuth.Request webAuthRequest = DbxWebAuth.newRequestBuilder()
.withNoRedirect()
.build();
String authorizeUrl = webAuth.authorize(webAuthRequest);
System.out.println("1. Go to " + authorizeUrl);
System.out.println("2. Click \"Allow\" (you might have to log in first).");
System.out.println("3. Copy the authorization code.");
System.out.print("Enter the authorization code here: ");
String code = new BufferedReader(new InputStreamReader(System.in)).readLine();
if (code == null) {
System.exit(1); return;
}
code = code.trim();
DbxAuthFinish authFinish;
try {
authFinish = webAuth.finishFromCode(code);
} catch (DbxException ex) {
System.err.println("Error in DbxWebAuth.authorize: " + ex.getMessage());
System.exit(1); return;
}
System.out.println("Authorization complete.");
System.out.println("- User ID: " + authFinish.getUserId());
System.out.println("- Access Token: " + authFinish.getAccessToken());
보관 인증 자동으로하지 않고 수동 상호 작용을 할 가능성을? 앱 키/비밀 정보, 계정 이메일/비밀번호를 제공하고 세션에 대해 accessToken
을 얻으 려합니다.
추신. Robelectric + Espresso를 사용하지 말고 UI 테스트가 아닌 단위/통합 테스트에 보관하고 싶습니다.
은 앱 패키지와 관련된 액세스 토큰입니까? 내 프로덕션 응용 프로그램에 대해받은 액세스 토큰이 단위 테스트 용으로 수락되는지 궁금합니다. – 4ntoine
Dropbox API 액세스 토큰은 응용 프로그램 사용자 쌍만 식별합니다. 특정 Java/Android 패키지에 묶여 있지 않으므로 여러 위치/환경에서 동일한 액세스 토큰을 사용할 수 있습니다. – Greg