我正在尝试使用API对我的Google日历进行一些更改。
我已经在Google云控制台上创建了一个项目,启用了日历API,并准备好了凭据。我设置的OAuth范围是:
scopes = ['https://www.googleapis.com/auth/calendar']
flow = InstalledAppFlow.from_client_secrets_file("client_secret.json", scopes=scopes)
而且我同时获得了我的帐户的两个凭据。
credentials = flow.run_console()
我想使用ACL来访问日历,因此我尝试了“获取”和“插入”这两个功能。代码如下:
rule = service.acl().get(calendarId='primary', ruleId='ruleId').execute()
print('%s: %s' % (rule['id'], rule['role']))
rule = {
'scope': {
'type': 'group',
'value': 'default',
},
'role': 'owner'
}
created_rule = service.acl().insert(calendarId='primary', body=rule).execute()
print(created_rule)
但是,结果表明我的检修部件有一些问题。
<HttpError 400 when requesting https://www.googleapis.com/calendar/v3/calendars/primary/acl/ruleId?alt=json
returned "Invalid resource id value.">
和
<HttpError 400 when requesting https://www.googleapis.com/calendar/v3/calendars/primary/acl?alt=json
returned "Invalid scope value.">
我想念或做错了什么步骤?
ruleId
中。因此,请确保在此处提供有效的ruleId
:rule = service.acl().get(calendarId='primary', ruleId='valid-rule-id').execute()
如果您不知道ruleId
,可以通过调用Acl.list来查找。
group
共享此日历,则应在scope.value
中提供该组的有效电子邮件地址。 default
不是有效值。您的请求正文应如下所示:rule = {
'scope': {
'type': 'group',
'value': 'group-email-address',
},
'role': 'owner'
}
如果您单击相应组中的About
,则会找到该组的电子邮件地址。
我希望这会有所帮助。