サイトのトップへ戻る

Google App Engine ドキュメント日本語訳

Users サービスを使用する

Google App Engine では、Google インフラ上のいくつかの便利なサービスを使用できます。 このサービスには SDKを含むライブラリを使用したアプリケーションからアクセスできます。 そのようなサービスの一つにUsers サービスがあります。これを使うと、あなたのアプリケーションと Google ユーザーアカウントを統合することができます。 Users サービスでは、ユーザーは既にログインしている Google アカウントをアプリケーションで使用できます。

それでは、 Users サービスを使ってアプリケーションでの挨拶をパーソナライズしてみましょう。



Usersを使用する

今回もhelloworld/helloworld.py を編集し、中身を以下のように書き換えます:

helloworld.php
View on GitHub
<?php

use google\appengine\api\users\User;
use google\appengine\api\users\UserService;
# Looks for current Google account session
$user = UserService::getCurrentUser();
if ($user) {
  echo 'Hello, ' . htmlspecialchars($user->getNickname());
}
else {
  header('Location: ' . UserService::createLoginURL($_SERVER['REQUEST_URI']));
}

ブラウザー上でページを再読み込みしてください。テスト用に用意されたGoogleログインページのローカルバージョンにリダイレクトされます。 この画面で任意のユーザー名を入力でき、ユーザー名に応じて仮のUserオブジェクトが表示されます。

アプリケーションがApp Engine上で動作している場合はユーザーはGoogle アカウントのログインベージに送られ、ログインもしくはアカウントの作成に成功するとアプリケーションに送り返されます。



Users API

それでは、新しく追加したコードを詳しく見てみましょう:

helloworld.php
View on GitHub
# Looks for current Google account session
$user = UserService::getCurrentUser();

ユーザーが既にアプリケーションにログインしている場合は、getCurrentUser()はそのユーザーのUserオブジェクトを返します。 ログインしていない場合はnullを返します。

helloworld.php
View on GitHub
if ($user) {
  echo 'Hello, ' . htmlspecialchars($user->getNickname());
}

ユーザーがログインしている場合は、パーソナライズされたメッセージが表示されます。このメッセージでは、ユーザーアカウントと関連のあるニックネームが使用されます。

helloworld.php
View on GitHub
else {
  header('Location: ' . UserService::createLoginURL($_SERVER['REQUEST_URI']));
}

ユーザーがログインしていない場合は、 ユーザーのブラウザはGoogle アカウントログイン画面へリダイレクトされます。 リダイレクトにはこのページのURL情報が含まれているので($_SERVER['REQUEST_URI']中に)、 ユーザーがログインしたり新規アカウント登録した後に、Google アカウントログイン側の処理機構はユーザーをアプリケーションのページへ送り返すことができます。

Users APIに関する詳細情報については、Users リファレンスを参照してください。



次は...

これでアプリケーションは、訪れたユーザーに名前で挨拶できます。それでは、ユーザーがお互いに挨拶できる機能を追加しましょう。

フォームを処理する >>