【问题标题】:Is there a way to map GAE user object and Google+ userid有没有办法映射 GAE 用户对象和 Google+ 用户 ID
【发布时间】:2014-04-14 05:46:51
【问题描述】:

here 所述,对于使用 python 用户 API 的默认身份验证,将根据用户的电子邮件返回一个对象。当通过对象调用user_id() 时,会返回一个唯一的 ID,这当然不是 Google+ 用户 ID。


import webapp2
from google.appengine.api import users

class MainPage(webapp2.RequestHandler):
        def get(self):
            user = users.get_current_user()
            if user:
                if users.is_current_user_admin():
                    utype = "Admin"
                else:
                    utype = "Normal" 
                self.response.headers['Content-Type'] = 'text/html'
                self.response.out.write('Hello, ' + user.nickname() + ' Userid: ' + user.user_id() + ' User Type: ' + utype)
            else:
                self.redirect(users.create_login_url(self.request.uri))

app = webapp2.WSGIApplication([
                                ('/', MainPage)
                            ], debug=False)

基本上,我需要加号 id 来检索一些用户详细信息。 (通过HTTP GET

AppEngine API 中是否有任何可用的软件包可以为我提供登录用户电子邮件的 google plus id?

或者我应该继续使用 OAuth 2 进行身份验证吗?

我已经完成了基于用户 API 的 50%,因此我们将不胜感激。

【问题讨论】:

    标签: python google-app-engine webapp2


    【解决方案1】:

    是的,使用他们的 user.email()

    要访问他们的 Google+ 个人资料的属性,您需要使用适用于 Python 的 Google API 客户端库https://developers.google.com/api-client-library/python/start/installation

    【讨论】:

    • 谢谢@lanGSY。从您的链接中找到了一条出路:) 目前我正在使用 google-api-python-client-samples-1.2 中的 appengine 示例中显示的方式。
    • 除了使用@IanGSY 提到的 Google API 客户端库之外,我通常实现这一目标的方式是创建我自己的用户模型并在那里存储相关的 Google+ ID、电子邮件地址和其他个人资料数据.然后,您可以通过 ID 或电子邮件地址查询您的数据存储区并获取所有信息。另外,我认为您需要使用 OAuth2(或 Google+ 登录)才能使用 G+ 客户端库。
    • 是的..我不得不这样做。就像你说的那样,制作了一个自定义模型并保持方法的名称相同以避免额外的开销:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-09-23
    • 2019-09-08
    • 1970-01-01
    • 2012-11-29
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多