2

我想知道我应该如何提示用户从我的应用程序登录/连接到他们的谷歌帐户,以便我可以使用他们的电子邮件和密码访问他们的文档/驱动器。我有一个在我的桌面上运行的应用程序,它连接到一个谷歌帐户的驱动器,并创建一个电子表格,然后访问它以获取信息。目前我必须硬编码电子邮件和密码。

我听说过 gaema,但听起来不太对劲。另外我不知道它是否有所作为,但这个应用程序只在我的笔记本电脑上,而不是在谷歌服务器上运行。虽然它不应该......我认为。

PS我是谷歌应用引擎和python的新手,甚至是stackoverflow,所以请不要讨厌我的菜鸟问题:)

4

2 回答 2

3

向用户询问他们的用户名和密码绝不是一个可接受的解决方案,我相信他们不会愿意给你。相反,您需要使用某种授权流程,通常是 OAuth 2.0。

本文介绍了一个使用 GAE 的 Google Drive 的完整示例应用程序。

于 2012-08-14T21:36:29.747 回答
2

所以 AppEngine 使与 Google 帐户相关的东西变得非常容易(惊喜 :) )。看看这里的文档https://developers.google.com/appengine/docs/python/users/overview。这解释了用户服务,您可以在其中请求用户使用其 Google 凭据登录。例如(直接来自文档):

from google.appengine.api import users
from google.appengine.ext import webapp

class MyHandler(webapp.RequestHandler):
    def get(self):
        user = users.get_current_user()
        if user:
            greeting = ("Welcome, %s! (<a href=\"%s\">sign out</a>)" %
                        (user.nickname(), users.create_logout_url("/")))
        else:
            greeting = ("<a href=\"%s\">Sign in or register</a>." %
                        users.create_login_url("/"))

        self.response.out.write("<html><body>%s</body></html>" % greeting)

这会检查用户是否使用他们的 Google 帐户登录,如果没有则向他们显示登录 URL。执行“魔术”的部分是users.create_logout_url('/')users.create_login_url('/')方法。他们创建了一个指向用户可以登录的特殊 URL 的链接(您无需进行任何额外的格式化/编码)。然后将它们重定向回您的站点(“/”将它们发送到您的主页,但您可以更改)。希望这可以帮助!

编辑:正如@Wooble 指出的那样,这不会授予您的应用程序访问用户数据的权限 - 它只会根据用户服务提供的信息为您提供一些关于用户的基本信息。为了允许您的应用程序访问 Google Drive 数据,@SebastianKreft 提供的链接显示了一个执行身份验证的示例应用程序。可以在此处找到有关将 OAuth 与 Drive 结合使用的其他一般信息。简而言之,用户需要授予您的应用程序访问其数据的权限,并且它通过 OAuth 令牌执行此操作(请参阅文档以获得比我能给出的更好的解释)。

于 2012-08-14T21:24:17.137 回答