如何解决通过python Calendar API添加与会者时超出了日历使用限制
我有一个使用Google日历API的服务器。 但是今天我有一个问题。
<HttpError 403 when requesting https://www.googleapis.com/calendar/v3/calendars/9rmkucj5624ove5oe3dvlcchb8%40group.calendar.google.com/events/ilrgnanahon2scuq2hv9u6fcmg?alt=json returned "Calendar usage limits exceeded.">
json
{
"error": {
"code": 403,"message": "The request is missing a valid API key.","errors": [
{
"message": "The request is missing a valid API key.","domain": "global","reason": "forbidden"
}
],"status": "PERMISSION_DENIED"
}
}
但是,如果我使用API创建事件,编辑事件,则API起作用了! 我添加与会者的功能
def update_event_employee_email(service,calendarId,eventId,employee_email,displayName):
# First retrieve the event from the API.
event = service.events().get(calendarId=calendarId,eventId=eventId).execute()
#print(event)
add_attendees = {
"displayName": str(displayName),"email": str(employee_email)
}
try:
current_attendees = event['attendees']
except Exception as e:
current_attendees=[]
if current_attendees:
attendees = event['attendees']
attendees.append(add_attendees)
body = {
"attendees": attendees
}
print(attendees)
else:
body = {
"attendees": [
{
"displayName": str(displayName),"email": str(employee_email)
}
]
}
#print(event)
try:
event = service.events().patch(calendarId=calendarId,eventId=eventId,body=body).execute()
print(event)
status = 200
except Exception as e:
print(json.loads(e.content)['error']['code'])
status = 400
return status
我还检查了Google支持 Avoid Calendar use limits
我认为我的API不会超出限制
我更新: 我的服务构建代码
# If modifying these scopes,delete the file token.pickle.
SCOPES = ['https://www.googleapis.com/auth/calendar']
def service_build():
"""Shows basic usage of the Google Calendar API.
Prints the start and name of the next 10 events on the user's calendar.
"""
creds = None
# The file token.pickle stores the user's access and refresh tokens,and is
# created automatically when the authorization flow completes for the first
# time.
print(os.path.exists('token.pickle'))
if os.path.exists('token.pickle'):
with open('token.pickle','rb') as token:
creds = pickle.load(token)
# If there are no (valid) credentials available,let the user log in.
if not creds or not creds.valid:
if creds and creds.expired and creds.refresh_token:
creds.refresh(Request())
else:
flow = InstalledAppFlow.from_client_secrets_file(
'credentials.json',SCOPES)
creds = flow.run_local_server(port=0)
# Save the credentials for the next run
with open('token.pickle','wb') as token:
pickle.dump(creds,token)
service = build('calendar','v3',credentials=creds)
return service
# Call the Calendar API
所以我想我的问题 例如:如果您有新令牌,则可以发送任何一个*。 50个活动有100位来宾-每个活动2位来宾*。 25个活动有100位来宾-每个活动4位来宾
每个限制
一天:36位客人
周:252位客人
每月:〜1080位客人
所以我也想知道如何购买更多限额以添加更多客人
解决方法
您在Avoid Calendar use limits下列出的配额是指Google日历的常规用法,如果您使用的是与UI相对的API),则配额限制会更严格。
Google未提供有关通过Calendar API使用添加与会者的最大配额的确切信息,可用信息为Google Calendar API Usage Limits:
Google Calendar API的每日礼遇上限为1,000,000个查询。
要查看或更改项目的使用限制,或请求增加配额,请执行以下操作:
- 如果您还没有项目的计费帐户,请创建一个。
- 在API控制台中访问API库的“已启用API”页面,然后从列表中选择一个API。
- 要查看和更改与配额相关的设置,请选择“配额”。要查看使用情况统计信息,请选择“使用情况”。
换句话说,您也许可以免费请求额外的配额,但是,如果您已经将配额增加到最大限额,您将无法获得更多的配额-甚至付款。
现在出现第二条错误消息:
The request is missing a valid API key
这听起来好像您的身份验证存在问题,并且API假定您尝试使用API密钥而不是有效的访问令牌进行身份验证。要丢弃代码实现问题,请使用Try this API
测试您的Events: insert或Events:patch请求。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。