3.DropboxAPIを使う準備をする – Pythonで始めるDropboxAPI

 今回はDropboxAPIをPythonで使用するために必要な環境の準備を行います。
 Dropboxへの登録、Dropboxアプリの登録、Pythonのインストール、virtualenvで仮想環境構築、pipでパッケージのインストールを行います。

もくじ

1.概要
 今回書くことについての説明をします。
2.DropboxAPIについて
 DropboxAPIがどんなものか、どういう仕組みで動いているのかについて説明します。
3.DropboxAPIを使う準備をする <ー今回はコレ
 pythonからDropboxAPIを使うために必要な環境の準備をします。
4.サンプルプログラムを作る
 3で作成した環境を使ってサンプルプログラムを作ります。
5.flaskを使ってウェブアプリを作成
 ウェブフレームワークのflaskを使ってウェブアプリを作る練習をします。
6.Dropboxのフォルダ一覧を作る
 flaskを利用して、Dropboxのフォルダ一覧を表示するウェブアプリを作ります。
7.dotcloudで公開する
 PaaSのdotcloudを使い、6で作ったウェブアプリをデプロイすることでみんなに見てもらえるようにします。
8.参考
 参考にしたURLなど。

本記事のソースはGitHubにあります。


3. DropboxAPIを使う準備をする

3.1. Dropboxの登録

 もしDropboxアカウントを持っていない方がいましたら、ここで登録してください。

Dropboxを開きます。
Screen Shot 2011 10 10 at 9 54 55 AM

右上のlog inを押すと小さなウィンドウがでてきます。
Screen Shot 2011 10 10 at 9 55 57 AM

create an accountを押すと、登録画面が開きます。
Screen Shot 2011 10 10 at 9 56 49 AM

必要な情報を入力して登録します。
登録が完了すると、登録したOS用のツールのダウンロードが始まります。
ダウンロードが完了したらインストールしてみましょう。

Screen Shot 2011 10 10 at 9 57 44 AM
ダウンロード画面からHome画面に戻るには、「Back to home」をクリックします。

Screen Shot 2011 10 10 at 9 57 46 AM
一応チュートリアルみたいなものがあって、一通り試してみると、容量が250MB増えます。

Screen Shot 2011 10 10 at 9 58 43 AM
もし、日本語になっていなかったら、右下にある言語セレクトボックスから選択しましょう。

Screen Shot 2011 10 10 at 9 58 45 AM

Screen Shot 2011 10 10 at 9 58 49 AM

3.2. アプリ登録

 「開発者」のリンクからアプリ登録を行います。
 ここで登録したアプリを後で使いますので、あとでわかるような名前で登録しておいてください。

Screen Shot 2011 10 31 at 9 53 03 PM

画面の下の方に「開発者」というリンクがあります。

Screen Shot 2011 10 31 at 9 53 09 PM

Screen Shot 2011 10 31 at 9 53 14 PM

My apps を開きます。

Screen Shot 2011 10 31 at 9 53 17 PM

必要な情報を入力してアプリを作成します。
Access levelはapp folderにします。

Screen Shot 2011 10 31 at 9 53 49 PM

App KeyとApp secretがOAuthに必要なキーとなります(塗りつぶしているところ)。

Screen Shot 2011 10 31 at 9 54 05 PM

この2つのキーのことをOAuthでは、Consumer KeyとConsumer Secretと呼びます。
あとで使うのでここに記載されていることを覚えておいてください。

3.3. pythonのインストール

 pythonがインストールされていない人はここでインストールしましょう。
 macの場合、最初にインストールされているpythonで大丈夫だと思います。
 windowsは試していないのでわかりませんが、インストーラーを使ってインストールすれば簡単にインストールできるはずです。
 Linuxの場合、python2.5より小さいバージョンの場合には、ソースからでもapt-getからでも何でもいいのでインストールしてください。

3.3.1. pythonのインストール(mac)

 macportsからインストールする他にも、ソースからビルドしてもいいですし、windowsと同じくパッケージをダウンロードしてインストールしてもいけます(たぶん)。

macports のインストール
The MacPorts Project — Homeを開きます。

Screen Shot 2011 10 31 at 5 37 43 AM
Downloadを押します。

Screen Shot 2011 10 31 at 5 37 47 AM
OSのバージョンにあったファイルをダウンロードします。

Screen Shot 2011 10 27 at 11 47 04 PM
ダウンロードしたパッケージをインストールします。

インストールが完了したら、ターミナルを開いてpython2.7のインストールを行います。

[bash]
sudo port install python27
[/bash]

3.3.2. pythonのインストール(win)

 windowsでもpythonをインストールできますが、文字コードの関係でコンソール(MSDOSプロンプト)での動作がうまくいかないことが多い気がします。

python標準リリースを開きます。
Screen Shot 2011 10 31 at 10 07 24 PM

python2.7.2のwindows用インストーラをダウンロードしてインストールします。

3.4. virtualenvの導入

 virtualenvはpythonの仮想的な環境を作ることができるパッケージです。
 globalな環境とは別にパッケージの管理が可能となります。
 プロジェクトAではpython2.5でAパッケージをインストールして動かす、プロジェクトBではpython2.7でBパッケージをインストールして動かす、ということが可能になります。

virtualenvをインストール

[bash]
sudo easy_install virtualenv
[/bash]

virtualenvの使い方

 使い方と自分が良く使うオプションです。

[bash]
Usage: virtualenv [OPTIONS] DEST_DIR
-p PYTHON_EXE, –python=PYTHON_EXE
どのpythonの実行ファイルを使うかを指定する。
(/opt/Python2.7/bin/python)
–no-site-packages globalのライブラリにアクセスしない。
–distribute より新しくてナイスなdistributeというパッケージを使って管理する
[/bash]

実際には、次の項でも同じものを書きますが、以下のようにプロジェクトディレクトリを指定して仮想環境を作ります。

[bash]
mkdir testapp
virtualenv –no-site-packages testapp
[/bash]

生成が完了すると以下のディレクトリ構成で必要なファイルが生成されます。

[bash]
.
|– bin
| |– activate
| |– activate.csh
| |– activate.fish
| |– activate_this.py
| |– easy_install
| |– easy_install-2.7
| |– pip
| |– pip-2.7
| |– python
| `– python2.7
|– include
| `– python2.7 -> /opt/python2.7/include/python2.7
`– lib
`– python2.7
|– ファイルが沢山

[/bash]

bin/activateをsourceで読み込むことで、仮想環境を有効化することができます。
仮想環境を無効化するにはdeactivateを呼び出します。

なお、virtualenvはvirtualenvwrapperというパッケージを使うと更に使いやすくなります。
詳しくは、virtualenv, virtualenvwrapper, pip を使う方法 – Ian Lewisがわかりやすいと思います。
(Windowsの場合にはvirtualenvwrapperを使えません。かわりにenv.pyというのを使うとよいです。参照:Windowsでもvirtualenvwrapperっぽい環境をつくる – Ehrenの日記

3.5. 今回の開発用に仮想環境を作成する

 今回のDropboxAPIを使用するプロジェクト用に仮想環境を構築しましょう。
 プロジェクトを作成したいディレクトリに移動してプロジェクトディレクトリを作成し、そこに仮想環境を作ります。

[bash]
% cd /Users/planset/tmp
% mkdir dropboxtest
% virtualenv –no-site-packages dropboxtest
[/bash]

 作成した仮想環境を利用するには、プロジェクトディレクトリに作成されたbinフォルダのactivateを読み込みます。

[bash]
% cd dropboxtest
% source bin/activate
(dropboxtest) %
[/bash]

開発環境に有効にした状態ではシェルの行の先頭に(プロジェクト名)という文字列がつきます。
仮想環境を無効化したい場合には、deactivateを呼びます。

[bash]
(dropboxtest)% deactivate
%
[/bash]

3.6. 必要なパッケージのインストール

 仮想環境を有効にした状態で、必要なパッケージのインストールを行います。
 pipというパッケージ管理ツールが仮想環境にインストールされていますのでそれを使います。

[bash]
(dropboxtest)% pip install flask
(dropboxtest)% pip install dropbox
[/bash]

ここではウェブフレームワークとしてflask、DropboxAPIのSDKとしてdropboxというパッケージをインストールしています。
これで仮想環境でflask(後述)とDropboxAPIを使う環境が整いました。

せっかく作ったので、仮想環境だけでライブラリが使えることを確認してみましょう。

[bash]
(dropboxtest)% python
Python 2.7.2 (default, Aug 4 2011, 14:30:25)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
>>>
[/bash]

何もでてこない=importが成功したってことなので、flaskパッケージを使えるようになりました。
逆に、仮想環境から抜けた場合、インストールしたパッケージが使えないことを確認しましょう。

[bash]
(dropboxtest)% deactivate
% python
Python 2.7.2 (default, Aug 4 2011, 14:30:25)
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import flask
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named flask
>>>
[/bash]

インポートエラーがでていますね。
このように、global環境にはパッケージは存在せず、仮想環境だけにパッケージが存在することがわかります。

次回

 やっと次回でDropboxAPIを使ってDropboxにアクセスします。
 次回は4.サンプルプログラムを作るです。