Google 日历 api 无法获取颜色 ID

马图留斯

基本上我写了一个代码,它应该显示事件名称和十六进制颜色代码,但由于某种原因它不起作用,它显示了一个名为 Keyerror:colorId 的错误。

我查看了https://developers.google.com/calendar/v3/reference/colors/get并无法理解如何解决此问题

from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
import datetime

SCOPES = 'https://www.googleapis.com/auth/calendar'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, store)
service = build('calendar', 'v3', http=creds.authorize(Http()))

now = datetime.datetime.utcnow().isoformat() + 'Z'
print('Getting the upcoming 10 events and color')
events_result = service.events().list(calendarId='primary', timeMin=now,
                                      maxResults=10, singleEvents=True,
                                      orderBy='startTime').execute()
colors = service.colors().get().execute()

events = events_result.get('items', [])

if not events:
    print('No upcoming events found.')
for event in events:
    start = event['start'].get('dateTime', event['start'].get('date'))
    varv = colors['calendar'][event['colorId']]['background']
    print(start, varv)
Tanaike

这个改装怎么样?

改装要点:

  • 为了检索事件颜色,请event在字段中使用
  • 也有没有colorId.

修改后的脚本:

为了体现以上几点,请修改如下。

从 :
colors = service.colors().get().execute()

events = events_result.get('items', [])

if not events:
    print('No upcoming events found.')
for event in events:
    start = event['start'].get('dateTime', event['start'].get('date'))
    varv = colors['calendar'][event['colorId']]['background']
    print(start, varv)
至 :
colors = service.colors().get(fields='event').execute()  # Modified

events = events_result.get('items', [])

if not events:
    print('No upcoming events found.')
for event in events:
    if 'colorId' in event:  # Added
        start = event['start'].get('dateTime', event['start'].get('date'))
        varv = colors['event'][event['colorId']]['background']  # Modified
        print(start, varv)

参考 :

如果这不是你想要的,我很抱歉。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章