一眼で撮った写真の保存場所をDropBoxに変えたので、プログラムでファイルアップロードを一気にやったり、ファイル一覧を取得してファイルが全部上がったかを確認したりしたかったので、DropBox APIを使ってみました。
付いていたサンプルコードを動かしてみたけど、このサンプルコードをちょっといじるだけで、やろうとしてた事がいろいろ出来る気が・・・・。
とりあえず、今回はDropBox APIのインストールと、サンプルコードの動かし方メモ。
#環境
OS:Mac OS X 10.9.5
Python:Ver.2.7.7
DropBox Core API:Version 2.2.0
##サンプルアプリを動かすための事前準備
DropBox APIを使うためには App keyと App secretを手に入れる必要があります。
1.WebブラウザからDropBoxにログイン
2.画面の下にある「・・・」ボタンを開き「デベロッパー向け」を押下
3.左メニューの「App Console」を押下
4.「Create App」を押下し、以降、必要事項を入力
-
サンプル(今回登録した値)
-
What type of app do you want to create?:Dropbox API app
-
What type of data does your app need to store on Dropbox?:Files and datastores
-
Can your app be limited to its own folder?:YES
-
What type of files does your app need access to?:All file types
-
Provide an app name, and you're on your way.:アプリ名
5.一番下の「Create App」を押下して登録
App keyと App secretが手に入ります。
##DropBox APIのインストール
Pythonの仮想環境を構築できるvirtualenvを使ってみるで試した、virtualenvを使ってDropBox用の仮想環境を作ります。
1.プロジェクトのディレクトリを作成
$ mkdir DropBoxAPI_Test
2.virtualenvコマンドを実行
$ virtualenv --no-site-packages DropBoxAPI_Test
3.仮想環境 起動
$ cd DropBoxAPI_Test
$ source bin/activate
4.DropBox APIをインストール
$ pip install dropbox
DropBox APIが使える環境が完成しました。
##サンプルアプリの実行
- Install Core API SDKsのPythonを選び、 Download Python SDKという所からPython用のSDKをダウンロードします。(現バージョン:dropbox-python-sdk-2.2.0.zip)
- ダウンロードしたdropbox-python-sdk-X.X.X.zipを展開
- cli_client.pyをさっき作ったDropBoxAPI_Testにコピー
- cli_client.pyを実行
(PythonTest)% python cli_client.py
5.以下のようなターミナル風の出力がされれば完了
[loaded OAuth 2 access token]
Dropbox>
##その他
サンプルは実際のターミナルのような動きができます。
まずログインをしてAuthKeyを取得します。
Dropbox>login
1. Go to: https://www.dropbox.com/1/oauth2/authorize?response_type=code&client_id=XXXXXXXXXXXXXXXXX
2. Click "Allow" (you might have to log in first).
3. Copy the authorization code.
Enter the authorization code here:
1.に書いてあるURLにブラウザからアクセスし、「許可」を押下するとコードが表示されます。表示されたコードを入力してエンターを押すと認証が完了します。
Enter the authorization code here:XXXXXXXXXXXXXXXX
認証が成功するとログは何も出ずにターミナルの状態になります。
Dropbox>
###一覧取得
Dropbox>ls
###ディレクトリ移動
Dropbox>cd ディレクトリ名
###削除
Dropbox>rm ファイル名
mkdir、mvなど他にもいろいろ、このサンプルだけで簡単なファイル操作ができます。