Was macht gog?
Verwende gog für Gmail/Kalender/Drive/Kontakte/Sheets/Docs. Erfordert OAuth-Einrichtung.
Bevorzuge ein bereits autorisiertes Host-Konto: Führe zuerst den angeforderten gog-Befehl aus. Beginne mit der Einrichtung erst nach einem Authentifizierungsfehler. Frage niemals in Chat-Nachrichten nach Passwörtern, Client-Secrets oder Aktualisierungstokens.
Einrichtung (einmalig)
gog auth credentials /pfad/zu/client_secret.jsongog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheetsgog auth list
Remote / Headless Gateway-Hosts
Wenn der Gateway-Host keine lokale Browseranzeige hat:
- Bevorzuge einen aktiven Callback-Listener auf dem Gateway-Host. Leite vom Rechner mit dem Browser den exakten Callback-Port weiter (
ssh -L <port>:127.0.0.1:<port> benutzer@gateway-host), öffne die Autorisierungs-URL, diegogausgibt, und lasse die Weiterleitung auf diesem weitergeleiteten Port abschließen. - Wenn kein aktiver Listener verfügbar ist, wählt der Bediener einen Einfügemodus in einer vertrauenswürdigen Shell auf dem Gateway-Host. Callback-URLs dürfen niemals in Chat oder Agenteneingaben gelangen:
--manual: Der Bediener fügt die vollständige Redirect-URL in die interaktive Eingabeaufforderung vongogein.--remote --step 1: Gibtauth_url(undstate_reused) aus und beendet sich. Nach der Browser-Zustimmung führt der Bediener--remote --step 2 --auth-url <callback-url>in der vertrauenswürdigen Shell aus. Ein fehlgeschlagener Seitenaufruf vonlocalhostnach der Zustimmung ist zu erwarten.
- Behalte denselben aufgelösten Kontext bei Remote-Schritten bei:
GOG_CONFIG_DIRhat Vorrang vor--home, das Vorrang vorGOG_HOMEhat. Behalte auch--client, Dienste/Scopes, Redirect-URI und Zustimmungsoptionen bei. Abgelaufene manuelle Zustände können wiederverwendet werden (state_reused=true). - Wenn die Desktop-Schlüsselverwaltung nicht verfügbar ist, konfiguriere das Datei-Backend (
gog auth keyring file) und setzeGOG_KEYRING_PASSWORDin der Gateway-Umgebung, damit nicht-interaktive Agent-/--no-input-Läufe Tokens lesen können.gog auth doctormeldet, wenn das Passwort fehlt. - Empfangener Callback ist nicht gleich gespeichertes Token. Wenn der Token-Austausch oder die Identitätssuche hinter einem Proxy fehlschlägt, beginne erneut mit Schritt 1, sobald der Bediener ausgehenden Datenverkehr oder Proxy-Ausnahmen für die erforderlichen Google-Endpunkte genehmigt hat. Umgehe nicht die Host-Netzwerkrichtlinie und verwende keine fehlgeschlagenen oder abgelaufenen Zustände wieder.
Für Diagnosen überprüfe jeden Eintrag, den gog auth list --check meldet; sein Exit-Status beweist nicht, dass jedes gespeicherte Token gültig ist. Überprüfe ebenso den von gog auth doctor gemeldeten Status, anstatt dich nur auf seinen Exit-Code zu verlassen.
Häufige Befehle
- Gmail-Suche:
gog gmail search 'newer_than:7d' --max 10 - Gmail-Nachrichtensuche (pro E-Mail, ignoriert Threading):
gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account [email protected] - Gmail senden (einfach):
gog gmail send --to [email protected] --subject "Hallo" --body "Hallo" - Gmail senden (mehrzeilig):
gog gmail send --to [email protected] --subject "Hallo" --body-file ./nachricht.txt - Gmail senden (stdin):
gog gmail send --to [email protected] --subject "Hallo" --body-file - - Gmail senden (HTML):
gog gmail send --to [email protected] --subject "Hallo" --body-html "<p>Hallo</p>" - Gmail-Entwurf:
gog gmail drafts create --to [email protected] --subject "Hallo" --body-file ./nachricht.txt - Gmail-Entwurf senden:
gog gmail drafts send <entwurfId> - Gmail antworten:
gog gmail send --to [email protected] --subject "Re: Hallo" --body "Antwort" --reply-to-message-id <nachrichtId> - Kalender-Ereignisse auflisten:
gog calendar events <kalenderId> --from <iso> --to <iso> - Kalender-Ereignis erstellen:
gog calendar create <kalenderId> --summary "Titel" --from <iso> --to <iso> - Kalender mit Farbe erstellen:
gog calendar create <kalenderId> --summary "Titel" --from <iso> --to <iso> --event-color 7 - Kalender-Ereignis aktualisieren:
gog calendar update <kalenderId> <ereignisId> --summary "Neuer Titel" --event-color 4 - Kalender-Farben anzeigen:
gog calendar colors - Drive-Suche:
gog drive search "abfrage" --max 10 - Kontakte:
gog contacts list --max 20 - Sheets abrufen:
gog sheets get <sheetId> "Tab!A1:D10" --json - Sheets aktualisieren:
gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED - Sheets anhängen:
gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS - Sheets leeren:
gog sheets clear <sheetId> "Tab!A2:Z" - Sheets Metadaten:
gog sheets metadata <sheetId> --json - Docs exportieren:
gog docs export <docId> --format txt --out /tmp/doc.txt - Docs cat:
gog docs cat <docId>
Kalenderfarben
- Verwende
gog calendar colors, um alle verfügbaren Ereignisfarben (IDs 1-11) zu sehen. - Füge Farben zu Ereignissen mit dem Flag
--event-color <id>hinzu. - Ereignisfarben-IDs (aus der Ausgabe von
gog calendar colors):- 1: #a4bdfc
- 2: #7ae7bf
- 3: #dbadff
- 4: #ff887c
- 5: #fbd75b
- 6: #ffb878
- 7: #46d6db
- 8: #e1e1e1
- 9: #5484ed
- 10: #51b749
- 11: #dc2127
E-Mail-Formatierung
-
Bevorzuge einfachen Text. Verwende
--body-filefür mehrteilige Nachrichten (oder--body-file -für stdin). -
Das gleiche
--body-file-Muster funktioniert für Entwürfe und Antworten. -
--bodyinterpretiert\nnicht. Wenn du Zeilenumbrüche benötigst, verwende einen Here-Doc oder$'Zeile 1\n\nZeile 2'. -
Verwende
--body-htmlnur, wenn du reichhaltige Formatierung benötigst. -
HTML-Tags:
<p>für Absätze,<br>für Zeilenumbrüche,<strong>für Fettdruck,<em>für kursiv,<a href="url">für Links,<ul>/<li>für Listen. -
Beispiel (einfacher Text via stdin):
gog gmail send --to empfä[email protected] \ --subject "Besprechungsnachbereitung" \ --body-file - <<'EOF' Hallo Name, Danke für das heutige Treffen. Nächste Schritte: - Punkt eins - Punkt zwei Mit freundlichen Grüßen, Dein Name EOF -
Beispiel (HTML-Liste):
gog gmail send --to empfä[email protected] \ --subject "Besprechungsnachbereitung" \ --body-html "<p>Hallo Name,</p><p>Danke für das heutige Treffen. Hier sind die nächsten Schritte:</p><ul><li>Punkt eins</li><li>Punkt zwei</li></ul><p>Mit freundlichen Grüßen,<br>Dein Name</p>"
Hinweise
- Setze
[email protected], um--accountnicht wiederholen zu müssen. - Für Skripte bevorzuge
--jsonplus--no-input. - Sheets-Werte können via
--values-json(empfohlen) oder als Inline-Zeilen übergeben werden. - Docs unterstützt Export/Kat/Kopie. Bearbeitungen vor Ort erfordern einen Docs-API-Client (nicht in gog).
gog gmail searchgibt eine Zeile pro Thread zurück; verwendegog gmail messages search, wenn du jede einzelne E-Mail separat erhalten möchtest.