futoase

よろしくお願いします。

俺 AdventCalendar 6日目

DropBox APIを利用してみる

その一点があったのでいじってみようという気になりました。
他にはAndroid向け、iOS向け、ruby向け及びjava向けのライブラリがあります。
今回の検証にはPython 2.7.2 を利用しました。OSはMac OS X(Lion)を利用しています。

下準備

アプリケーション登録

ここからアプリケーション登録を行います。

今回はサンプルを作成するだけなので、特定のフォルダーだけ利用するアプリを作成します。

作成後。App key と App secret key は隠蔽してます。

ライブラリのインストール

ここより、Python向けのライブラリをダウンロードします。
ダウンロード後はSDK tutorialを見ながら進めていってみます…

※アプリケーションの登録が終えていれば、登録したアプリケーション名、アプリケーションのApp key、App secretが表示されています。

ライブラリのダウンロード後、zipファイルを解凍し、setup.pyスクリプトを利用しモジュールのインストールを行います。
(virtualenvを利用したほうが環境を汚さなくて済むので良いです。)

python setup.py install

ライブラリのテスト利用

ここの下方にあるチュートリアルコードを利用してみます。

# -*- coding:utf-8 -*-

from dropbox import client, rest, session

APP_KEY = 'key'
APP_SECRET = 'secret'

ACCESS_TYPE = 'app_folder'
sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)

request_token = s.obtain_request_token()
url = s.build_authorize_url(request_token)
  
print "url:", url
print "Please visit this website and press the 'Allow' button, then hit 'Enter he
re."
raw_input()

access_token = sess.obtain_access_token(request_token)
client = client.DropboxClient(sess)
print "linked account:", client.account_info()

今回はアプリケーションフォルダーを利用する形なので、
ACCESS_TYPE = 'app_folder' とします。
APP_KEY, APP_SECRETは適宜変えてください。何を入れればいいかわかるでしょ!

実行してみましょう。

chmod +x test_dropbox.py
./test_dropbox.py


スクリプト実行後、URLが生成されます。

生成されたURLをブラウザのアドレス欄にコピペし、アクセスしてみましょう。
アプリの認証許諾画面が表示されます。"許可"ボタンを押下しましょう!

認証に成功すれば以下の画面がでてきます。

認証成功後、スクリプトを実行していたシェルに戻ってreturnキーを押下しましょう。
ユーザ情報がずらずらと出てきます。
※この情報は文字を隠していても文字数やらなんやらで推測されかねないので出しません^ー^

ファイルアップロードを試す

まだ試す元気があるので、ファイルアップロードも試してみます。
まずはDropboxの状態を確認してみましょう。

Dropbox(web)にアクセスし、ログインを行います。
イベントページを確認してみます。

アプリが登録された旨の通知が表示されています。

ore アプリの ore フォルダを覗いてみましょう。

まだ何もありません。ファイルをアップロードすっぞ!
tutorialページ、files項のものをそのまま利用してみます。
※先ほどのtest_dropbox.pyを拡張する形で利用します。

スクリプトと同一のディレクトリにあるtest.jpgファイルをuhihi.jpgファイルとして、
Apps/ore ディレクトリにアップロードします。

# -*- coding:utf-8 -*-

from dropbox import client, rest, session

APP_KEY = 'key'
APP_SECRET = 'secret'

ACCESS_TYPE = 'app_folder'
sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)

request_token = s.obtain_request_token()
url = s.build_authorize_url(request_token)
  
print "url:", url
print "Please visit this website and press the 'Allow' button, then hit 'Enter he
re."
raw_input()

access_token = sess.obtain_access_token(request_token)
client = client.DropboxClient(sess)

with open('test.jpg') as f:
  response = client.put_file('/uhihi.jpg', f)

print "uploaded:", response

※アクションの度に認証を行う必要があります。スクリプトを実行した後に出てくるURLをブラウザのアドレス欄に貼り、アクセスしてください!
シェルにAPIレスポンスが表示されれば成功です。

Dropboxを確認してみましょう。
ブラウザを立ち上げてアクセスするのがだるいので、Dropboxアプリ経由で。
Dropboxフォルダを開いて、Appsフォルダを見つけて、

oreフォルダを見つけてみます(画像ではApps以下に一つしかないですけど)。

でまあoreフォルダを覗いてみましょう!

キタ━━━━(゚∀゚)━━━━!!うまくあがっていました。すごく楽にできます。

Dropbox Python 向けライブラリをいじってみて

まだ、ファイルのダウンロードのtutorialが残っている形ですが、紹介は以上とします。
かなり簡単なので、2GB(人によっては3GBまで無料な状態で拡張してるかな)を有効に活用できる、便利なものを作れるなぁと思った次第です。
みなさんもDropbox SDKを触ってみましょう!

Copyright (c) 2013-2017 Keiji Matsuzaki