次のコードがあります
def get(self):
user = users.get_current_user()
if user: # signed in already
self.response.out.write("User Id =" + user.user_id() + " - User federated identity = " + user.federated_identity() + " - User IdentityProvider = "+user.federated_provider() + " - User Email" + user.email() + "USer Nickname = " + user.nickname())
else: # let user choose authenticator
self.response.out.write('Hello world! Sign in at: ')
for name, uri in providers.items():
self.response.out.write('[<a href="%s">%s</a>]' % (
users.create_login_url(federated_identity=uri), name))
Google と yahoo をオープン ID プロバイダーとして使用してみましたが、ユーザーのフェデレーション ID やユーザーのニックネームなどのユーザー属性にアクセスしようとすると、ニックネームの代わりに URL が出力されます。ここ。
ここに私が見ている出力があります
User federated identity = https://me.yahoo.com/a/JHqoh95mg8UqmFeDWlzSxKLW_SnNIOTlOcplbGQ
and user.nickname() also outputs this
PS: アプリケーション ダッシュボードで Open ID を使用するようにアプリケーションを既に構成しており、コードは機能しています。