在我当前的Flask应用程序中,我有一个用户列在我的flask-sql-alchemy数据库。我处理用户的创建和登录(不处理与谷歌登录)。在flask webapp的功能中,未来的日历事件是由一个表单创建的。我如何将这些事件添加到用户的谷歌日历,而没有他们的oauth信息?在没有用户google信息的情况下,我在Google日历API网站上找到的以下代码是否可行?或者,这将只添加到日历的帐户的日历api是初始化。
插入.py
event = {
'summary': 'Google I/O 2015',
'location': '800 Howard St., San Francisco, CA 94103',
'description': 'A chance to hear more about Google\'s developer products.',
'start': {
'dateTime': '2015-05-28T09:00:00-07:00',
'timeZone': 'America/Los_Angeles',
},
'end': {
'dateTime': '2015-05-28T17:00:00-07:00',
'timeZone': 'America/Los_Angeles',
},
'recurrence': [
'RRULE:FREQ=DAILY;COUNT=2'
],
'attendees': [
{'email': user.email}
],
'reminders': {
'useDefault': False,
'overrides': [
{'method': 'email', 'minutes': 24 * 60},
{'method': 'popup', 'minutes': 10},
],
},
}
event = service.events().insert(calendarId='primary', body=event).execute()
print 'Event created: %s' % (event.get('htmlLink'))
功能这是我想要的。
@app.route('/account', methods=['GET', 'POST'])
@login_required
def account():
form = Form()
if form.validate.on_submit():
event = {
'summary': 'Google I/O 2015',
'location': '800 Howard St., San Francisco, CA 94103',
'description': 'A chance to hear more about Google\'s developer products.',
'start': {
'dateTime': form.datetime_start.data,
'timeZone': form.timezone.data,
},
'end': {
'dateTime': form.datetime_end.data,
'timeZone': form.timezone.data,
},
'recurrence': [
'RRULE:FREQ=DAILY;COUNT=2'
],
'attendees': [
{'email': current_user.email}
],
'reminders': {
'useDefault': False,
'overrides': [
{'method': 'email', 'minutes': 24 * 60},
{'method': 'popup', 'minutes': 10},
],
},
}
event = service.events().insert(calendarId='primary', body=event).execute() # the event is now in the users calendar
如果你想在你的用户的日历上创建事件,你必须以某种方式获得他们的许可。
# First retrieve the event from the API.
updated_event = service.events().move(
calendarId='primary', eventId='eventId',
destination='destinationCalendarId').execute()
你可以在你的表单中添加 destinationCalendarId 字段。
将您的用户添加到事件中作为与会者,将在他们的日历中显示您作为组织者的事件。如果这能满足您的需求,这是最简单的方法,因为它只需要您的证书。