1

AppEngine ユーザー サービスのドキュメントhttps://developers.google.com/appengine/docs/python/users/userobjectsを読むときの私の理解は、有効なメール アドレスでユーザーを初期化する場合、作成されたユーザーには有効な user_id が必要であるということです。ただし、このコードを試したとき

from google.appengine.api import users

user = users.User('valid_email@gmail.com')
print user.user_id()

開発サーバーと実際の AppEngine 環境の両方で、常に

None

これはバグですか?または、ドキュメントを誤解していますか?

4

1 に答える 1

2

上記のようにオブジェクトをインスタンス化すると、実際には が返されNoneます。ドキュメントごと:

注: アプリケーションが User インスタンスを構築する場合、API は user_id の値を設定せず、None を返します。

メソッドを使用するには、構造user_idを使用することをお勧めしuser = users.get_current_user()ます。ユーザーがログインしていない場合は、Google アカウントで認証できるようにします。例えば:

user = users.get_current_user()
if user:
    self.response.out.write(user.user_id())
else:
    self.response.out.write(
        "<a href=\"%s\">Sign in</a>." % users.create_login_url("/"))

ドキュメントにも同様の例がありますが、認証後にuser_idメソッドにアクセスできるようになります。

于 2012-11-08T17:04:03.770 に答える