我已成功在Google App Engine上创建了一个与Gmail API交互的python web-app。我现在想要的是,当获得权限时,我的应用程序还会创建一个用户帐户,用户可以使用他们的Google帐户登录该帐户。这样可以防止用户为我的应用输入另一个密码。
总结一下,目前的工作流程是: 1.用户通过输入电子邮件和密码来创建帐户 2.用户授权GMail访问
我想得到的是: 1.用户连接Google帐户,然后获取帐户并验证GMail访问权限
最好的方法是什么?
我目前的Google API代码如下所示。直接来自Google示例:https://developers.google.com/api-client-library/python/guide/google_app_engine
from apiclient.discovery import build
from google.appengine.ext import webapp
from oauth2client.appengine import OAuth2Decorator
decorator = OAuth2Decorator(
client_id='your_client_id',
client_secret='your_client_secret',
scope='https://www.googleapis.com/auth/calendar')
service = build('calendar', 'v3')
class MainHandler(webapp.RequestHandler):
@decorator.oauth_required
def get(self):
# Get the authorized Http object created by the decorator.
http = decorator.http()
# Call the service using the authorized Http object.
request = service.events().list(calendarId='primary')
response = request.execute(http=http)
答案 0 :(得分:1)
要首先访问Google API,您必须在开发者控制台中注册。检查此link
我了解您的流程是,用户使用gmail ID和密码登录,用户必须能够访问您的应用。在使用oauth流时,如果在代码中选择“access_type”=“离线”,即使用户离线,也有助于访问信息。为此,您需要refresh token。
在您的开发者控制台中,您必须激活应用程序将要使用的所有API。
在上面提到的Oauth链接中,您可以查看如何处理授权请求,以及如何对用户进行身份验证。
如果您想使用service account,请不要忘记domain wide delegation。
在决定scopes时,如果您的应用程序未向用户帐户写入任何信息,请使用只读范围。
在python中查看此link以获取Gmail API示例客户端代码。
答案 1 :(得分:1)