Получение событий из определенного календаря Google API Python - PullRequest
0 голосов
/ 06 июня 2018

Я использую код quickstart.py из API Google для получения событий из календаря.Это код ниже, точные шаги здесь https://developers.google.com/calendar/quickstart/python

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

# Setup the Calendar API
SCOPES = 'https://www.googleapis.com/auth/calendar.readonly'
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()))

# Call the Calendar API
now = datetime.datetime.utcnow().isoformat() + 'Z' # 'Z' indicates UTC time
print('Getting the upcoming 10 events')
events_result = service.events().list(calendarId='primary', timeMin=now,
                                  maxResults=10, singleEvents=True,
                                  orderBy='startTime').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'))
    print(start, event['summary'])

Это прекрасно работает для меня.Теперь я добавил еще один календарь в свою учетную запись, скопировал код в другую папку и снова выполнил все шаги (ссылка Google).Я помещаю secound .json в папку secound и проверяю его.

Несмотря на то, что он должен иметь доступ к обоим календарям, он извлекает события только из первого календаря.Поэтому мне интересно, как получить доступ к другому календарю (желательно только второму, но я оба одновременно помогу).

Я провел поиск в документации Google, которая не помогла, и каждый найденный мной вопрос Stackoverflow основан надругой язык программирования (и я не могу добавить его в python) или ответы содержат ссылки на сайты, которые больше не существуют.

Большое спасибо!

1 Ответ

0 голосов
/ 06 июня 2018

Вам необходимо выбрать календарь, из которого вы хотите получить события, передавая правильные значения от calendarId до service.events().list().'primary' всегда можно использовать для получения основного календаря пользователя, вы можете получить информацию обо всех календарях, которые есть у пользователя, с помощью service.calendarList().list().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...