在浏览Google文档的过程中,我一直在努力寻找如何构建服务对象的方法,该服务对象使我可以通过服务帐户管理Google日历。这是我的代码:
SCOPES = ['https://www.googleapis.com/auth/calendar']
SERVICE_ACCOUNT_FILE = 'service_account_credentials.json'
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
CAL = build('calendar', 'v3', credentials=credentials)
EVENT = {
'summary': 'TEST EVENT',
'start': {
'dateTime': '2018-10-24T01:00:00-07:00',
'timeZone': 'America/Denver'
},
'end': {
'dateTime': '2018-10-24T02:00:00-07:00',
'timeZone': 'America/Denver'
}
}
CAL.event().insert(calendarId='primary', body=EVENT).execute()
运行此代码时,抛出此错误:
Traceback (most recent call last):
File "file.py", line 55, in <module>
CAL.event().insert(calendarId=TEST_CALENDAR, body=EVENT).execute()
AttributeError: 'Resource' object has no attribute 'event'
当我创建CAL对象时,它正在创建这种对象:<googleapiclient.discovery.Resource object at 0x00000249A24BB978>
,但是我想构建具有events().insert()
方法的其他对象,然后可以使用该方法来发布事件到我的Google日历。
关于如何做到这一点的任何想法?预先感谢您的帮助。
答案 0 :(得分:0)
我认为您的脚本几乎是正确的。但是需要做一些修改。那修改呢?
CAL.event().insert(calendarId='primary', body=EVENT).execute()
CAL.events().insert(calendarId='primary', body=EVENT).execute()
primary
表示日历的所有者是服务帐户。primary
时,事件将被插入服务帐户的日历中。 -如果要将事件插入服务帐户以外的现有日历中,请以共享用户之一的身份将服务帐户的电子邮件添加到日历中。
primary
。)并运行脚本。如果这不是您想要的,对不起。