Google APIs Client Library for Python on App Engine

以前から試したかったこと。
App Engine上でGoogle APIs Client Library for Python (以下ライブラリ)を使ってみること。

何だかんだで試せていなかったんですが、本日奮起して試してみました。

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

Linuxを使っている人はとっても簡単。

% sudo easy_install --upgrade google-api-python-client


これでOK。
Windowsな人はsetuptoolsをここからダウンロード、インストールすればeasy_installが使えるようになります。

App Engineプロジェクトにライブラリをコピー

次にApp Engineプロジェクトにライブラリをインポートします。
ここではmytasksというプロジェクトフォルダがあると仮定しています。

% cd $PROJECTS/mytasks
% /usr/local/bin/enable-app-engine-project .


するとカレントフォルダにどばぁ〜っと必要なファイルがコピーされます。

% ls
apiclient/  app.yaml  gflags.py  gflags_validators.py  helloworld.py  httplib2/  oauth2/  oauth2client/  uritemplate/

App Engineプログラムの作成

ネットをいろいろ探し回ったところ、結局たどり着いたのはこちらでした。

Getting Started with Tasks API on Google App Engine


やっぱ本家が一番ですね。
ということでmytasksプロジェクトをいじいじ作ります。
↑のサイトに書かれている通りでOK・・・ではありません。一ヶ所修正して下さい。

main.py (誤)

decorator = OAuth2Decorator(client_id=settings.CLIENT_ID,
                            client_secret=settings.CLIENT_SECRET,
                            scope=settings.SCOPE,
                            user_agent='mytasks')

main.py (正)

decorator = OAuth2Decorator(client_id=settings.CLIENT_ID,
                            client_secret=settings.CLIENT_SECRET,
                            scope=settings.SCOPE)


user_agentという引数はなくなったようです。
これで準備完了。デバッグサーバを起動してlocalhost:8080にアクセスしましょう。


いつものログイン画面が表示されます。
ここでも注意が必要です。この時のメールアドレスですが、実際のGMailのアドレスにして下さい。そうしないと (認証は成功しますが) リダイレクトされてきた時に例外が発生してしまいます。

ここでまだGoogleアカウントにログインしていない場合はログイン画面にリダイレクトされます。すでにログイン済みであれば、よく見かけるアクセス許可確認画面が表示されます。


もちろんここで許可します。すると


おぉ!タスクリストが出た!!
めでたしめでたし。