본문 바로가기

IT/프로그래밍/Python

Python 에서 Dropbox SDK 이용하기

Python과 Dropbox 연동 했던 부분에 대한 기록을 남겨둔다.


우선 Dropbox의 개발자 사이트로 접속하면 dropbox api에 대한 문서 및 사용법에 대한 부분이

정리가 아주 잘 되어있다. OAuth 가이드의 설명 부분도 이미지를 이용한 방식이 보기도 좋고,

(개인적 취향으로 다른 서비스들의 설명보다 보기 좋았음...)

우선 사용을 하려면 다른 서비스들과 마찬가지로 APP 등록을 해야한다.

스크린샷 2015-08-14 오후 6.46.35.png

앱 등록을 하려면 위의 화면과 같이 Drop-ins app, Dropbox SDK app 둘중에 선택을 해야하는데, python용 SDK

사용을 위해서는 Dropbox SDK를 사용해야 한다. 그리고 drop-ins는 웹, 모바일앱을 위한 용도로 사용하기에 좀더

최적화 된듯 하다.

스크린샷 2015-08-14 오후 6.46.49.png

dropbox SDK를 선택하면 접근할 폴더의 범위와 접근파일 타입의 범위를 선택하게 된다.

생성한 뒤에는 생성된 app의 setting을 해줘야 한다. OAuth2를 이용하기 위해서는 redirect 받을 경로가 필요한데

웹이 아닌 pc에서 설치형으로 사용되는 app이라면 https://localhost 를 써줘야 한다.

생성을 했으면 이제 python에서 연동을 해보자.

연동부분에 있어서는 Dropbox 의 튜토리얼을 참고했다. (참조 : dropbox 튜토리얼)

우선 pip를 이용해서 dropbox 모듈 설치 pip install dropbox

import dropbox

app_key = '당신의 key'
app_secret = '당신의 Secret'

flow = dropbox.client.DropboxOAuth2FlowNoRedirect(app_key, app_secret)

authorize_url = flow.start()

app_key, app_secret의 값은 생성한 앱의 setting 화면으로 들어가면 보인다.

위의 코드까지 진행을 했으면 authorize_url에 저장된 웹사이트로 이동을 하면 해당 App의 dropbox 허용여부를

묻는 페이지가 나타난다.

허용을 하면 인증 코드가 나오는데 해당 코드를 복사해서 아래의 코드처럼 붙여넣는다.

code = '생성된 코드값'

access_token, user_id = flow.finish(code)
client = dropbox.client.DropboxClient(access_token)

생성된 코드값으로 tokenuser id를 받게 되는데 user id보다는 token 이 중요하다.

(user id정도는 token을 아용해서 얼마든지 다시 확인 가능)

여기까지 진행해서 client 객체까지 생성을 했으면 그 이후에 dropbox에 파일을 저장하거나 가져오는 등의 기능은

dropbox 문서를 이용해서 자유롭게 사용할 수 있다. [참조 링크 : Dropbox SDK document]


BlogWriter