【发布时间】:2020-02-13 09:05:38
【问题描述】:
我正在使用服务帐户和 Google Calendar v3 API 来邀请域内部来宾参加活动。我收到Encountered 403 Forbidden with reason "quotaExceeded" 错误。但是,从控制台,没有达到 API 限制,当我停止邀请客人时,错误消失了。
根据 Google Cloud Platform 控制台中可用的设置,拥有服务帐户的 Google Cloud Platform 项目与我的域密切相关,位于:API 和服务 > 域验证部分。
此外,我所有的客人都拥有与我的域相关的 G Suite 帐户,并且我已在我的服务帐户设置中启用了 G Suite 域范围的委派。 p>
我认为这足以防止由于客人邀请而导致的 API 错误。我知道这里列出的 API 限制:https://support.google.com/a/answer/2905486?hl=en 我认为应该没问题,即提及邀请外部客人的限制,这不是我的情况。
但似乎我在设置中遗漏了一些内容,而且我的内部客人仍被视为外部客人,您对如何继续解决此问题有什么建议吗?我还应该检查什么?
以下是我在 python 中使用服务帐户创建事件的代码:
SERVICE_ACCOUNT_FILE = 'path/to/service_account.json'
SCOPES = [
'https://www.googleapis.com/auth/calendar.events',
'https://www.googleapis.com/auth/spreadsheets'
]
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE,
scopes=SCOPES
)
service = discovery.build('calendar', 'v3', credentials=credentials)
service.events().insert(
calendarId='my_calendar_id',
body=event_body,
sendUpdates="none").execute()
【问题讨论】:
-
完整的错误信息是什么?
-
我在日志中发现的错误信息是:
Encountered 403 Forbidden with reason "quotaExceeded"就是这样,不是我在描述中提到的,我要更新它。 -
它没有准确说明您达到了哪个配额?如果您等待几分钟,它会再次起作用还是在一天的剩余时间里都不起作用?
-
不幸的是,我没有更详细的错误:/ 从第一次失败开始,错误持续了不到一个小时,直到我删除了事件插入请求的“参加者”参数。
-
你可以去console.cloud.google.com -> 选择与服务帐户关联的项目 -> APIs & Services -> 仪表板 -> 从列表中选择 Google Calendar API -> 检查交通图。如果您在图表中拖动选择特定时间区域,它将放大,您可以以 15 秒的间隔放大。因此,您将能够查看您是否达到了每 100 秒 500 个请求的默认配额,您也可以对其进行编辑以增加它。
标签: google-cloud-platform google-calendar-api