前回からだいぶ時間が空いてしまいました><
趣味のひとつとして、無料で遊べるGoogleAppEngineでプログラミングの勉強をしていきます。まったくわかんない状態からなんとか頑張ります。今回はUsersライブラリについて。

Google App Engine はUsersライブラリを利用すると Google Acountと連携できます。
Googleの解説ページを見ながらさっそくやってみます。
http://code.google.com/intl/ja/appengine/docs/python/gettingstarted/usingusers.html

Userライブラリはローカルの場合はテスト用の動作になるので注意が必要です。

#usersライブラリを使えるようにするためにインポートする。
from google.appengine.api import users

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):
  def get(self):

    #get_current_user()はGoogleにログインしていればUserオブジェクトを返す。
    #ログインしてなければNoneを返す。
    user = users.get_current_user()

    if user:
      #ログインしている場合

      self.response.headers['Content-Type'] = 'text/plain'
      #user.nickname()はニックネームです。
      #アカウントのメールアドレスとアプリケーションのドメインが一致しているかどうかで値が変わる。
      self.response.out.write('Hello, ' + user.nickname())

    else:
      #ログインしていない場合はログインページへとリダイレクトする。

      #self.request.uriを指定することで、ログイン後にこのページへと戻ってくる。
      self.redirect(users.create_login_url(self.request.uri))

application = webapp.WSGIApplication(
                                     [('/', MainPage)],
                                     debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()

Userには次のメソッドがあります。

  • nickname()
  • email()
  • user_id()

nickname()はアプリのドメインとメールアドレスのドメインが同一かどうかで返す値が変わります。同一の場合は@の左側のみ、異なる場合はメールアドレス全体が返ってきます。
email()はメールアドレスが返ってきます。
user_id()は一意のIDを返します、これはユーザがアドレスを変更した場合でも変更されません。

Usersライブラリを利用すると、簡単にGoogleAcountを利用したサービスの作成が可能となります。

次:3. Google App Engine for Python でユーザからの送信されたデータを処理する。