サンプルコードで分かるGAE&Twitter API開発 (2/5)
2010年04月28日 11時00分更新
サンプルコードの構成ファイルを理解しよう
それでは今回の本題、サンプルコードの解説に入ります。
最初に、サンプルを構成するファイルの役割について説明します。1つ1つの中身はよく分からなくても構いませんが、それぞれの役割をつかめばあとの理解はずっと楽になりますから、どのファイルがどんな役割をしているのかだけ、覚えておきましょう。
- ■app.yaml
- GAEアプリケーションの設定ファイルで、GAEの利用には必須のファイルです。前回の記事で説明したアプリケーション名や、ファイル配置、URLハンドラなどを設定します。詳しくは以下のドキュメントを参照してください。
- Google App Engine -Python アプリケーション設定
http://code.google.com/intl/ja/appengine/docs/python/config/appconfig.htm - ■index.yaml
- GAEのデータストア(データベース機能)のインデックス設定ファイルです。インデックスとは、データストアに対するクエリー(条件つきのデータ選択など)を実行する際に必要となる情報です。app.yaml同様、GAEの利用には必須のファイルですが、GAE SDKの開発用Webサーバーの機能によって自動的に更新されるので、特殊な事情がない限り手動で変更する必要ありません。詳しくは以下のページを参照してください。
- Google App Engine -Python データストアのインデックスの設定
http://code.google.com/intl/ja/appengine/docs/python/config/indexconfig.html - ■main.py
- サンプルコードのメイン部分の処理が記述されたプログラムファイルです。ここでは「main.py」としましたが、任意のファイル名で構いません。Pythonで記述されており、すべての処理はこのファイルを経由して実行されます。今回のサンプルの主要な処理ロジックはすべてこの中にあると考えて問題ありません。GAEの開発には必須のファイルです。
- ■oauth.py
- Twitter APIを利用するために必要なOAuth認証の処理を、なるべく簡単に済ませるためのライブラリーファイルです。main.pyと同じく、Pythonで記述されています。以下のページで「AppEngine-OAuth-Library by Mike Knapp」として配布されているものそのまま利用しています。
- Twitter API wiki -OAuth Example
http://apiwiki.twitter.com/OAuth-Examples
github -mikeknapp’s AppEngine-OAuth-Library
http://github.com/mikeknapp/AppEngine-OAuth-Library - ライブラリーの機能を利用しない場合はこのファイルは必要ありません。
- ■simple_cookie.py
- 同じくPythonで記述されたプログラムで、今回のサンプルコードで利用しているCookieの処理を簡単にするためのライブラリーファイルです。こちらも、ライブラリーの機能を使わない場合は必要ありません。
- 以下のページで配布されているものをそのまま利用しています。
- Google Cookbook -A simple Cookie class
http://appengine-cookbook.appspot.com/recipe/a-simple-cookie-class/ - ■login.html
- ログイン画面を表示するためのテンプレートファイルです。今回のサンプルで独自に作成したファイルです。
- 一見すると普通のHTMLファイルですが、main.pyからプログラムで読み込んで表示するためのひな形ですので、実際にはそのまま表示されるわけではありません。ログインページのデザインを変更する場合はこのファイルを修正します。
- GAEにおけるテンプレートの利用については以下のページを参照してください。
- Google App Engine -テンプレートの使用
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/templates.html - ■home.html
- ログイン後のメイン画面(タイムライン画面)を表示するためのテンプレートファイルです。こちらもlogin.htmlと同じく、main.pyから読み込んで使います。ただし、ログイン画面と違い、APIで取得した情報を挿入して表示するなどの処理が絡むため、main.pyと連携する記述があります。
- メインページのデザインを変更する場合はこのファイルを修正します。