Google App Engineでもうちょっとがんばってみる:メール送信プログラム

白石俊平(あゆた)
2008-04-11 18:00:00
  • このエントリーをはてなブックマークに追加

サンプル解説

 では、サンプルで利用されていた機能を一つ一つ解説していこう。サンプル全文については、記事の最後にまとめて掲載する。

 まずは、Googleアカウントを用いた認証を行う部分だ。

Googleアカウントを用いた認証

 サンプルでは、「ユーザがアカウントにログインしていなければ、ログイン画面にリダイレクトする」と言う流れで処理を行っている。ソースを以下に示す。

def get(self):
  # (1) ログイン中のユーザを取得
  user = users.get_current_user()
  if not user:
    # (2) ユーザがログインしていなければリダイレクト
    self.redirect(users.create_login_url("/"))
  else:
...(略)...

 (1) ログイン中のユーザを取得するためには、google.appengine.api.usersモジュールのget_current_user()関数を使用する。このメソッドは、ユーザがログイン中であればUserクラスのインスタンスを返し、ログイン中でなければNoneを返す。Userクラスは、ユーザのメールアドレスと表示用の名称を返すメソッド(email()とnickname())を持つ簡単なクラスだ。

 (2) ユーザがログインしていない場合は、ログイン画面にリダイレクトする。ログイン画面のURLは、usersモジュールのcreate_login_url()関数を使用する。

users.create_login_url("ログイン後のパス")

 この関数を用いると、App Engine上ではGoogleアカウントへのログイン画面、ローカル環境では以下のような画面に遷移する。

ローカルでのログイン画面

 このように、環境によって異なるログイン画面へのパスを返すのが、この関数の役割だ(ちなみに、ローカル環境に置けるログイン画面のパスは「/_ah/login」となる)。

 また、アカウントからログアウトするためのURLを作成する「create_logout_url()」関数も存在し、使い方も全く同じだ。

 そして、実際にリダイレクトを行うためにはRequestHandlerクラスが持つredirect()メソッドを使用する。RequestHandlerクラスにはこの他にも様々なメソッドが存在するので、リファレンスをご確認いただきたい。

 たったこれだけで、認証処理とログイン画面へのリダイレクトは完了だ。App Engineの生産性の高さがおわかりいただけるだろうか。次は、メール送信機能の説明だ。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]