본문 바로가기

Dropbox.com/Authentication

Dropbox Authentication example

직접 작성한 프로그램을 이용하여 Dropbox의 폴더에 파일을 업로드/다운로드하려면 다음과 같은 인증절차를 따라야 한다

from : http://berry120.blogspot.kr/2012/02/dropbox-java-api.html

Dropbox.com 의 서버에는 REST API를 이용한 서버측 프로그램이 작동하며 업로드/다운로드를 지원한다. 그러므로 개발자는 서버측의 REST API 에 접속하여 필요한 작업을 요청하고 응답을 받는 내용으로 클라이언트 프로그램을 작성하면 업로드/다운로드가 가능해진다.

자작한 프로그램을 이용하여 Dropbox.com의 개인 폴더 (App Folder 라고한다) 생성하고 그 곳에 파일을 업로드/다운로드 전 수행 절차

Dropbox Authentication, API사용 인증절차 , Access key/secret를 발급받은 후에 파일을 업로드하는 예는 여기를 참조

1. Dropbox.com 에서 App Folder를 생성한다. 2. App Folder를 생성하면 App key/App secret 가 발급되며 이것은 다음 절차인 접속인증키/암호 발급을 위해 프로그램에 포함해야 한다 3. 생성된 앱 폴더는 아직 화면에 나타나지 않으며 프로그램을 작성하여 접속인증키/암호를 받고나면 자동으로 생성된다. 4. 접속 인증키/암호를 발급 받기위한 프로그램의 예 (아래의 프로그램 참조 ), Java SDK는 이곳을 참조 5. 아래의 프로그램을 실행하면 웹브라우저가 실행될 때 Dropbox.com에 로그인한 후에 나타난 다이얼로그의 확인버튼을 눌러 닫는다 6. 콘솔창에 출력된 접속인증키/암호는 차후 업로드/다운로드 작업시에 포함해야 하므로 기록해 두어야 하고 분실에는 위의 과정을 동일하게 반복하여 다시 접속인증키/암호를 받아야 하므로 조금 번거롭게 된다.

7. 이 과정을 거치고 나면 Dropbox.com 서버상의 자신의 계정에 [] 폴더 아래에 앱 폴더로 지정한 이름을 가진 폴더가 생성되며 파일을 업로드하면 앱 폴더 안에 저장된다.


DropboxAuth.java (API 사용승인을 받고 접속인증키/암호를 확인하는 프로그램)

package com.test.dropbox; import java.awt.Desktop; import java.net.URL; import javax.swing.JOptionPane; import com.dropbox.client2.*; import com.dropbox.client2.session.*; import com.dropbox.client2.session.Session.AccessType; import com.dropbox.client2.session.WebAuthSession.WebAuthInfo; public class DropboxAuth { private static final String APP_KEY = "nj8slasdfdu3r5";         // App Folder 인증키 private static final String APP_SECRET = "ixk5mlurasdff";       // App Folder 암 호 private static final AccessType ACCESS_TYPE = AccessType.APP_FOLDER; private static DropboxAPI<WebAuthSession> mDBApi; public static void main(String[] args) throws Exception { AppKeyPair appKeys = new AppKeyPair(APP_KEY, APP_SECRET); WebAuthSession session = new WebAuthSession(appKeys, ACCESS_TYPE); WebAuthInfo authInfo = session.getAuthInfo(); RequestTokenPair pair = authInfo.requestTokenPair; String url = authInfo.url; /* 브라우저를 실행하고 dropbox에 로그인한다 */ Desktop.getDesktop().browse(new URL(url).toURI()); /* 로그인 후에 아래의 다이얼로그의 확인버튼을 눌러 닫는다 */ JOptionPane.showMessageDialog(null, "Press ok to continue once you have authenticated."); session.retrieveWebAccessToken(pair); /* 아래의 절차를 거쳐 확인된 접속인증키/비밀번호는 차후에 사용해야하며 * 이 값을 사용하지 않으면 다시 이 절차를 수행하여 인증을 거쳐야 함*/ AccessTokenPair tokens = session.getAccessTokenPair(); System.out.println("Use this token pair in future so you don't have to re-authenticate each time:"); System.out.println("Key token: " + tokens.key); // 2sj4ay4ahasdfu, 액세스 인증키 System.out.println("Secret token: " + tokens.secret); // 1nixasdfrl6h, 액세스 암호  

/* 결국 DropboxAPI 클래스의 인스턴스를 생성하기 위해서 App key/secret, Access key/secret 가 필요함 */ mDBApi = new DropboxAPI<WebAuthSession>(session); DropboxAPI.Account account = mDBApi.accountInfo(); System.out.println("User Name: " + account.displayName);// 계정 사용자 이름 } }