Der Beispielcode ist in der Programmiersprache Python.
Zunächst müssen Sie ein Projekt in der Google Cloud Platform Console erstellen:
Wählen Sie als Nächstes neben dem Google-Logo das erstellte Projekt aus:
Da die Anwendung mit Google Kalender funktioniert, muss das Projekt die Google Kalender-API verbinden . Gehe in die Bibliothek :
Suchen Sie die Google Kalender-API und klicken Sie auf Aktivieren :
Um uneingeschränkten Zugriff auf Google Kalender zu erhalten, müssen Sie ein Dienstkonto erstellen. Gehen Sie dazu zu Anmeldeinformationen , Anmeldeinformationen erstellen und wählen Sie das Dienstkonto aus :
Wählen Sie einen Namen für das Konto und klicken Sie auf Erstellen :
Überspringen Sie dann die optionalen Einstellungen und kehren Sie zu den Anmeldeinformationen der Registerkarte zurück .
Als Nächstes müssen Sie zu den Dienstkontoinformationen wechseln, indem Sie auf den Kontonamen klicken und einen Schlüssel erstellen :
Es ist erforderlich, das JSON-Schlüsseldateiformat auszuwählen, und eine Datei wird auf den PC heruntergeladen, die vom Programm weiter gelesen wird, um Zugriff auf das Dienstkonto zu erhalten.
Nachdem wir den Kalender aufgerufen haben, auf den Sie Zugriff auf die Anwendung gewähren müssen, gehen Sie zu den Einstellungen:
Klicken Sie anschließend auf Benutzer hinzufügen, geben Sie den Namen des Dienstkontos ein und wählen Sie die Berechtigungen sorgfältig aus (abhängig von der Funktionalität der Anwendung):
Fahren wir nun mit dem Anwendungscode fort.
Installieren Sie die folgenden Bibliotheken:
pip install --upgrade google-api-python-client
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
Dann führen wir den folgenden Code aus:
from __future__ import print_function
import datetime
import googleapiclient
from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ['https://www.googleapis.com/auth/calendar']
calendarId = 'lp285psodk309lilp73d9irek8@group.calendar.google.com'
SERVICE_ACCOUNT_FILE = 'light-reality-285313-acdf4768fc46.json'
class GoogleCalendar(object):
def __init__(self):
credentials = service_account.Credentials.from_service_account_file(SERVICE_ACCOUNT_FILE, scopes=SCOPES)
self.service = googleapiclient.discovery.build('calendar', 'v3', credentials=credentials)
#
def create_event_dict(self):
event = {
'summary': 'test event',
'description': 'some info',
'start': {
'dateTime': '2020-08-03T03:00:00+03:00',
},
'end': {
'dateTime': '2020-08-03T05:30:00+03:00',
}
}
return event
#
def create_event(self, event):
e = self.service.events().insert(calendarId=calendarId,
body=event).execute()
print('Event created: %s' % (e.get('id')))
#
def get_events_list(self):
now = datetime.datetime.utcnow().isoformat() + 'Z'
print('Getting the upcoming 10 events')
events_result = self.service.events().list(calendarId=calendarId,
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'])
calendar = GoogleCalendar()
print("+ - create event\n? - print event list\n")
c = input()
if c == '+':
event = calendar.create_event_dict()
calendar.create_event(event)
elif c == '?':
calendar.get_events_list()
else:
pass
Als Ergebnis der Ausführung des obigen Codes mit dem Parameter '+' sehen wir das erstellte Ereignis im Kalender:
Links zu Materialien: