gpt4 book ai didi

python - 谷歌日历API ACL

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:04 25 4
gpt4 key购买 nike

我尝试使用 API 对我的 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.">

我错过了什么步骤或做错了什么?

最佳答案

  • 第一个错误出现在 Acl.get 中每当您指定无效的 ruleId 时。因此,请确保您在此处提供有效的 ruleId:
rule = service.acl().get(calendarId='primary', ruleId='valid-rule-id').execute()

如果您不知道ruleId,可以通过调用Acl.list来查找。 .

  • 关于第二个错误,问题是您为 Acl.insert 提供了错误的请求正文。如果您想与群组共享此日历,则应在scope.value中提供该群组的有效电子邮件地址。 default 不是有效值。您的请求正文应如下所示:
rule = {
'scope': {
'type': 'group',
'value': 'group-email-address',
},
'role': 'owner'
}

如果您点击相应群组中的关于,您将找到该群组的电子邮件地址。

希望这对您有所帮助。

关于python - 谷歌日历API ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60016552/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com