gpt4 book ai didi

google-calendar-api - 谷歌日历 API : list events with '&" in summary

转载 作者:行者123 更新时间:2023-12-02 04:23:38 25 4
gpt4 key购买 nike

使用谷歌日历 v3

日历在摘要中包含带有 & 符号的事件,例如爸爸妈妈问题是在使用代码中的 Events:list q 参数时找不到它。

使用此 google API test page 中的 API 时,行为如下:

  • 搜索 parent 没有结果
  • 搜索“mother&father”(带引号)返回预期事件

当从代码中做同样的事情时——带或不带引号——不返回事件。

在摘要中搜索不带 & 符号的事件时,代码工作正常。

所以问题是:如何从代码中使用 q 参数来检索名称中带有 & 符号的事件?

2019 年 12 月 17 日编辑:提供更多详细信息

设置:带有 id 的谷歌日历,2019 年 12 月 19 日有一个标题为“mother&father child1”的事件

CASE1:寻找“mother&father”,结果(“items”:看响应末尾)为空:

_api_list_args['q'] = 'mother&father'
GoogleConfig.service.events().list(**_api_list_args).execute()
GET https://www.googleapis.com/calendar/v3/calendars/<my_cal_id>%40group.calendar.google.com/events?singleEvents=true&q=father&orderBy=startTime&maxResults=8&timeMin=2019-12-17T14%3A47%3A17.205463Z&timeMax=2020-06-16T00%3A00%3A00.000Z&alt=json
{'kind': 'calendar#events',
'etag': '"p334fb5lauquec0g"',
'summary': 'SWD local',
'updated': '2019-12-17T14:46:39.117Z',
'timeZone': 'Europe/Brussels',
'accessRole': 'writer',
'defaultReminders': [],
'items': []}

CASE2:找“爸爸”,结果也为空:

_api_list_args['q'] = 'father'
GoogleConfig.service.events().list(**_api_list_args).execute()
URL being requested: GET https://www.googleapis.com/calendar/v3/calendars/<my_cal_id>%40group.calendar.google.com/events?singleEvents=true&q=father&orderBy=startTime&maxResults=8&timeMin=2019-12-17T14%3A47%3A17.205463Z&timeMax=2020-06-16T00%3A00%3A00.000Z&alt=json
{'kind': 'calendar#events',
'etag': '"p328ajglquuuec0g"',
'summary': 'SWD local',
'updated': '2019-12-17T14:51:41.818Z',
'timeZone': 'Europe/Brussels',
'accessRole': 'writer',
'defaultReminders': [],
'items': []}

CASE3:寻找“child1”,现在它找到了事件:

_api_list_args['q'] = 'child1'
GoogleConfig.service.events().list(**_api_list_args).execute()
URL being requested: GET https://www.googleapis.com/calendar/v3/calendars/<my_cal_id>%40group.calendar.google.com/events?singleEvents=true&q=child1&orderBy=startTime&maxResults=8&timeMin=2019-12-17T14%3A47%3A17.205463Z&timeMax=2020-06-16T00%3A00%3A00.000Z&alt=json
{'kind': 'calendar#events',
'etag': '"p338fbacsvauec0g"',
'summary': 'SWD local',
'updated': '2019-12-17T15:04:03.810Z',
'timeZone': 'Europe/Brussels',
'accessRole': 'writer',
'defaultReminders': [],
'items': [{'kind': 'calendar#event',
'etag': '"3153190087620000"',
'id': 'p939brcc2r83cu9q52sjagcua4_20191219T200000Z',
'status': 'confirmed',
'htmlLink': 'https://www.google.com/calendar/event?eid=cDkzOWJyY2MycjgzY3U5cTUyc2phZ2N1YTRfMjAxOTEyMTlUMjAwMDAwWiBnNXJ1cTl1Z2xlNWc2ZTFhMms1cmZyM2hjY0Bn',
'created': '2019-11-29T16:58:45.000Z',
'updated': '2019-12-17T15:04:03.810Z',
'summary': 'mother&father child1',
'description': 'my nice description<br><a href="<mysite>" id="ow2358" __is_owner="true"><mysite></a>',
'location': '#MYLOCATION',
'creator': {'email': '<myemail>'},
'organizer': {'email': '<my_cal_id>@group.calendar.google.com',
'displayName': 'SWD local',
'self': True},
'start': {'dateTime': '2019-12-19T21:00:00+01:00', 'timeZone': 'Europe/Brussels'},
'end': {'dateTime': '2019-12-19T22:00:00+01:00', 'timeZone': 'Europe/Brussels'},
'recurringEventId': 'p939brcc2r83cu9q52sjagcua4',
'originalStartTime': {'dateTime': '2019-12-19T21:00:00+01:00', 'timeZone': 'Europe/Brussels'},
'iCalUID': 'p939brcc2r83cu9q52sjagcua4@google.com',
'sequence': 0,
'extendedProperties': {'shared': {'course_162': '1'}},
'reminders': {'useDefault': True}}]}

但是:这个也失败了:寻找“chil”,即单词的一部分......案例 4:寻找“chil”

_api_list_args['q'] = 'chil'
GoogleConfig.service.events().list(**_api_list_args).execute()
URL being requested: GET https://www.googleapis.com/calendar/v3/calendars/<my_cal_id>%40group.calendar.google.com/events?singleEvents=true&q=chil&orderBy=startTime&maxResults=8&timeMin=2019-12-17T14%3A47%3A17.205463Z&timeMax=2020-06-16T00%3A00%3A00.000Z&alt=json
{'kind': 'calendar#events',
'etag': '"p338fbacsvauec0g"',
'summary': 'SWD local',
'updated': '2019-12-17T15:04:03.810Z',
'timeZone': 'Europe/Brussels',
'accessRole': 'writer',
'defaultReminders': [],
'items': []}

google 'q' 参数是否只搜索整个单词??

最佳答案

我的猜测是谷歌出于安全原因删除了“&”。删除 url 中的特殊字符,如“&”,可以防止大多数 xss 攻击。尝试用“&”或“%26”替换“&”

关于google-calendar-api - 谷歌日历 API : list events with '&" in summary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57016439/

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