Posts Tagged ‘Google Kalender’

Montag, 3. April 2023

OAuth gegen Google Kalender hat sich geändert

Ich habe mir auf einem Linux-Server verschiedene Cron-Jobs eingerichtet, welche Python-Scripts gegen Google Kalender ausführen.

Das eine Script sendet mir und meiner Frau Hinweise per Email, wenn sich in der letzten Stunde bis 30 Tage in der Zukunft liegende Kalendereinträge geändert haben. Ein anderes Script schaltet Kalendereinträge, die ich aus dem SBB-Fahrplan eingetragen habe, auf die Standardsichtbarkeit (anstelle „Privat“).

Letzte Woche funktionierten beide Scripts nicht mehr. Ursache: Google hat die OAuth-Authentifizierung angepasst, und sicherer gemacht (Migrationsanleitung). Das von mir aus dem Internet zusammenkopierte, in Trial & Error zum Funktionieren gebrachte Login-Verfahren funktioniert nicht mehr:

Nach ein wenig Herumpröbeln schaut so die Lösung aus:

...
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools

# Added 2023-03
from google.auth.transport.requests import Request
from google.oauth2.credentials import Credentials
from google_auth_oauthlib.flow import InstalledAppFlow
...
googleCredentialsFile = scriptdir + '/token-readonly.json'
SCOPES = ['https://www.googleapis.com/auth/calendar.readonly']
...
creds = None
if os.path.exists(googleCredentialsFile):
    creds = Credentials.from_authorized_user_file(googleCredentialsFile, SCOPES)
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)
    with open(googleCredentialsFile, "w") as token:
        token.write(creds.to_json())

service = build('calendar', 'v3', credentials=creds)
...

Nebenbemerkung: Beim Debuggen der (nun nicht mehr funktionierenden) Original-Routine stolperte ich auch noch über folgendes Problem: Why is oauth2client run_flow giving an Argparse error?

Tags: , , , , , , , ,
Labels: IT

Keine Kommentare | neuen Kommentar verfassen

Mittwoch, 21. September 2016

Irrtümlich gelöschte Google Kalender-Einträge wiederherstellen

Das geht ganz einfach: Auf der Web-Oberfläche klickt man auf den Pfeil-Button, um ein Dropdown mit den Eigenschaften des Kalenders anzuzeigen:

google-kalender-eigenschaften

Dort klickt man auf „Papierkorb ansehen“ und erhält eine Liste der in den letzten 30 Tagen gelöschten Einträge:

google-kalender-papierkorb

Einzelne Einträge kann man mit Klick auf die Checkbox links und dem Button „Ausgewählte Termine wiederherstellen“ am Ende der Liste wiederherstellen.

Tags: , , , , , ,
Labels: IT

3 Kommentare | neuen Kommentar verfassen