Google Drive APIのクイックスタート

pythonの勉強を始めようと思い、手始めにGoogle driveにファイルをアップロードする動画を見てやってみました。

動画

 drive.py : Google Drive SDK Python Quickstart Sample

ファイルをアップロードする手順が10分で説明されています。しかし、pythonもGoogle APIも初めてだったので、おっかなびっくり逐一停止させてメモりながらやっていたら1時間程かかりました。

Macで動画のとおりpythonのサンプルスクリプトを実行すると、次のようなエラーがでます。

Traceback (most recent call last):
File “drive.py”, line 23, in
authorize_url = flow.step1_get_authorize_url()
File “build/bdist.macosx-10.8-intel/egg/oauth2client/util.py”, line 120, in positional_wrapper
File “build/bdist.macosx-10.8-intel/egg/oauth2client/client.py”, line 1070, in step1_get_authorize_url
ValueError: The value of redirect_uri must not be None.

Macのpythonだと動かないのか?と悩みましたが、動画のコメントに解決方法が書いてありました。

FILENAME = 'document.txt'
REDIRECT_URI = 'urn:ietf:wg:oauth:2.0:oob'
# Run through the OAuth flow and retrieve credentials
flow = OAuth2WebServerFlow(CLIENT_ID, CLIENT_SECRET, OAUTH_SCOPE, REDIRECT_URI)

赤字の部分を追記する必要があるようです。

さくらのVPSで動かす場合

最終的にはさくらのVPSで動かすつもりなので、さくらのVPSでも動作確認しました。

さくらのVPSにはeasy_installコマンドがなかったので、次の呪文でインストールしました。

# curl -O http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py

参考:テックノート@ama-ch – easy_installが激しく便利

認証

サンプルプログラムでは、スクリプトを実行する度に、出力されるURLにブラウザでアクセスして認証コードを取得し、それを入力する仕様になっています。

この認証方法だとスクリプトにする意味がないので、認証コードを保管する仕組みを作りたいところです。

きっと、このページ(Google Developers Academy – About Drive Authentication and Authorization, https://developers.google.com/drive/training/drive-apps/auth/about)にやり方が書いてあると思うので、pythonの基礎を勉強しながら読んでやってみようと思います。


関連記事