有没有办法使用client_secret.json来验证Google API请求?

时间:2016-02-13 19:10:27

标签: python google-api gmail-api

我编写了一个Python脚本,该脚本使用Google API通过即将发布的Google任务和日历活动向您自己发送HTML电子邮件。我想做的是让它可以分发,以便任何人都可以下载并使用它,但是它需要用户在Google Developers Console中配置应用程序并将client_secrets.json下载到路径才能运行它。

如果您愿意,可以查看整个脚本here,但相关部分就是这个,我或多或少直接从Google快速入门页面中获取:

SCOPES = ('https://www.googleapis.com/auth/tasks.readonly  '
          'https://mail.google.com/ '
          'https://www.googleapis.com/auth/calendar.readonly')
CLIENT_SECRET_FILE = 'client_secret.json'
APPLICATION_NAME = 'GTasks Emailer'


def get_credentials():
"""..."""
home_dir = os.path.expanduser('~')
credential_dir = os.path.join(home_dir, '.credentials')
if not os.path.exists(credential_dir):
    os.makedirs(credential_dir)

credential_path = os.path.join(credential_dir, 'gtasks-emailer.json')

store = oauth2client.file.Storage(credential_path)
credentials = store.get()
if not credentials or credentials.invalid:
    flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
    flow.user_agent = APPLICATION_NAME
    if flags:
        credentials = tools.run_flow(flow, store, flags)
    else:  # Needed only for compatibility with Python 2.6
        credentials = tools.run(flow, store)
    print('Storing credentials to ' + credential_path)
return credentials

我花了一段时间搜索并查看了Google OAuth2页面,并试图找出如何以不使用client_secrets的方式进行身份验证,但这有点过头了,所以我希望有人可以放弃一些为我点亮它。

0 个答案:

没有答案