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の基礎を勉強しながら読んでやってみようと思います。
関連記事
- 2013/01/27 pythonでファイル入出力
- 2013/01/28 pythonでGoogle Driveにファイル転送
- 2013/01/31 pythonで日付によるファイルの選別
- 2013/02/03 pythonでGoogle Driveにリモートバックアップ