使用python在服务器上为多个用户提供Google日历访问

时间:2019-05-10 09:55:59

标签: python-3.x google-calendar-api google-oauth service-accounts

我正在尝试使用python语言集成Google日历。这段代码在我开发时想要的本地环境中效果很好。但是,当我将这段代码放在服务器端时,它不会像本地代码那样运行。

代码

from __future__ import print_function
from apiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
import datetime
import os
def googleSyc():
    SCOPES = 'https://www.googleapis.com/auth/calendar'
    store = file.Storage('storage.json')
    creds = store.get()
    path = os.path.dirname(os.path.realpath(__file__))
    if not creds or creds.invalid:
        flow = client.flow_from_clientsecrets(path+'/storage3.json', SCOPES)
        creds = tools.run_flow(flow, store)
    GCAL = discovery.build('calendar', 'v3', http=creds.authorize(Http()))

    start_date = datetime.datetime(
            2019,2, 6, 00, 00, 00, 0).isoformat() + 'Z'
    end_date = datetime.datetime(2019,2, 6, 23, 59, 59, 0).isoformat() + 'Z'

输出:提示用户允许访问我的 localhost

enter image description here

但是,当我在服务器上部署此代码时,它什么也不做,甚至都没有在浏览器中显示“选择帐户”之类的屏幕。 enter image description here 任何想法?我仍在尝试,但没有成功。

更新

我尝试了很多方法,但是在服务器上什么也没有发生。我也用这个:

OAuth2WebServerFlow(client_id='your_client_id', client_secret='your_client_secret', scope='googleapis.com/auth/calendar', redirect_uri='example.com/auth_return')

我的目标是,当我的代码在服务器上运行时,应该以与本地相同的方式打开。但是我仍然不明白为什么我会出错。

0 个答案:

没有答案