Que fait gog ?
Utilisez gog pour Gmail / Agenda / Drive / Contacts / Sheets / Docs. Nécessite une configuration OAuth.
Privilégiez un compte hôte déjà autorisé : exécutez d'abord la commande gog demandée. Ne passez à la configuration qu'après une erreur d'authentification. Ne demandez jamais les mots de passe, les secrets client ou les jetons d'actualisation dans le chat.
Configuration (une fois)
gog auth credentials /chemin/vers/client_secret.jsongog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheetsgog auth list
Hôtes distants / sans affichage (Gateway)
Lorsque l'hôte Gateway ne dispose pas d'affichage local dans un navigateur :
- Privilégiez un écouteur de rappel en direct sur l'hôte Gateway. Depuis la machine disposant du navigateur, redirigez le port exact du rappel (
ssh -L <port>:127.0.0.1:<port> utilisateur@gateway-host), ouvrez l'URL d'autorisation quegogaffiche, et laissez la redirection se terminer sur ce port redirigé. - Lorsqu'un écouteur en direct n'est pas disponible, l'opérateur choisit un chemin en mode collage dans un shell de confiance sur l'hôte Gateway. Les URL de rappel ne doivent jamais être saisies dans le chat ou l'entrée d'outil de l'agent :
--manual: l'opérateur colle l'URL de redirection complète dans l'invite interactive degog.--remote --step 1: afficheauth_url(etstate_reused) puis se termine. Après le consentement du navigateur, l'opérateur exécute--remote --step 2 --auth-url <callback-url>dans le shell de confiance. Un échec de chargement de la pagelocalhostaprès le consentement est normal.
- Conservez le même contexte de configuration résolu entre les étapes distantes :
GOG_CONFIG_DIRa priorité sur--home, qui a priorité surGOG_HOME. Préservez également--client, les services / étendues (scopes), l'URI de redirection et les options de consentement. Un état manuel non expiré correspondant peut être réutilisé (state_reused=true). - Si le trousseau de bureau n'est pas disponible, configurez le backend fichier (
gog auth keyring file) et définissezGOG_KEYRING_PASSWORDdans l'environnement Gateway afin que les exécutions non interactives de l'agent /--no-inputpuissent lire les jetons.gog auth doctorsignale quand le mot de passe est manquant. - La réception du rappel n'équivaut pas au stockage du jeton. Si l'échange de jeton ou la recherche d'identité échoue derrière un proxy, redémarrez à partir de l'étape 1 après que l'opérateur a approuvé les exceptions de portée de sortie ou de proxy pour les points de terminaison Google requis. Ne contournez pas la politique réseau de l'hôte et ne réutilisez pas un état expiré ou ayant échoué.
Pour le diagnostic, inspectez chaque entrée signalée par gog auth list --check ; son code de sortie ne prouve pas que chaque jeton stocké est valide. De même, inspectez l'état signalé par gog auth doctor plutôt que de vous fier uniquement à son code de sortie.
Commandes courantes
- Recherche Gmail :
gog gmail search 'newer_than:7d' --max 10 - Recherche de messages Gmail (par e-mail, ignore le threading) :
gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account [email protected] - Envoi Gmail (texte simple) :
gog gmail send --to [email protected] --subject "Bonjour" --body "Salut" - Envoi Gmail (multiligne) :
gog gmail send --to [email protected] --subject "Bonjour" --body-file ./message.txt - Envoi Gmail (stdin) :
gog gmail send --to [email protected] --subject "Bonjour" --body-file - - Envoi Gmail (HTML) :
gog gmail send --to [email protected] --subject "Bonjour" --body-html "<p>Salut</p>" - Brouillon Gmail :
gog gmail drafts create --to [email protected] --subject "Bonjour" --body-file ./message.txt - Envoi du brouillon Gmail :
gog gmail drafts send <draftId> - Réponse Gmail :
gog gmail send --to [email protected] --subject "Re: Bonjour" --body "Réponse" --reply-to-message-id <msgId> - Agenda - lister les événements :
gog calendar events <calendarId> --from <iso> --to <iso> - Agenda - créer un événement :
gog calendar create <calendarId> --summary "Titre" --from <iso> --to <iso> - Agenda - créer avec couleur :
gog calendar create <calendarId> --summary "Titre" --from <iso> --to <iso> --event-color 7 - Agenda - mettre à jour un événement :
gog calendar update <calendarId> <eventId> --summary "Nouveau titre" --event-color 4 - Agenda - afficher les couleurs :
gog calendar colors - Drive - recherche :
gog drive search "requête" --max 10 - Contacts :
gog contacts list --max 20 - Sheets - obtenir :
gog sheets get <sheetId> "Tab!A1:D10" --json - Sheets - mettre à jour :
gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED - Sheets - ajouter :
gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS - Sheets - effacer :
gog sheets clear <sheetId> "Tab!A2:Z" - Sheets - métadonnées :
gog sheets metadata <sheetId> --json - Docs - exporter :
gog docs export <docId> --format txt --out /tmp/doc.txt - Docs - afficher :
gog docs cat <docId>
Couleurs de l'agenda
- Utilisez
gog calendar colorspour voir toutes les couleurs d'événement disponibles (IDs 1 à 11) - Ajoutez des couleurs aux événements avec l'option
--event-color <id> - IDs des couleurs d'événement (d'après la sortie de
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
Mise en forme des e-mails
-
Privilégiez le texte brut. Utilisez
--body-filepour les messages de plusieurs paragraphes (ou--body-file -pour l'entrée standard). -
Le même modèle
--body-filefonctionne pour les brouillons et les réponses. -
--bodyn'échappe pas\n. Si vous avez besoin de sauts de ligne en ligne, utilisez un heredoc ou$'Ligne 1\n\nLigne 2'. -
Utilisez
--body-htmluniquement lorsque vous avez besoin d'une mise en forme enrichie. -
Balises HTML :
<p>pour les paragraphes,<br>pour les sauts de ligne,<strong>pour le gras,<em>pour l'italique,<a href="url">pour les liens,<ul>/<li>pour les listes. -
Exemple (texte brut via stdin) :
gog gmail send --to [email protected] \ --subject "Relance de réunion" \ --body-file - <<'EOF' Bonjour Nom, Merci pour notre réunion d'aujourd'hui. Prochaines étapes : - Élément un - Élément deux Cordialement, Votre Nom EOF -
Exemple (liste HTML) :
gog gmail send --to [email protected] \ --subject "Relance de réunion" \ --body-html "<p>Bonjour Nom,</p><p>Merci pour notre réunion d'aujourd'hui. Voici les prochaines étapes :</p><ul><li>Élément un</li><li>Élément deux</li></ul><p>Cordialement,<br>Votre Nom</p>"
Remarques
- Définissez
[email protected]pour éviter de répéter--account. - Pour les scripts, privilégiez
--jsonaccompagné de--no-input. - Les valeurs Sheets peuvent être transmises via
--values-json(recommandé) ou sous forme de lignes en ligne. - Docs prend en charge l'exportation, l'affichage et la copie. Les modifications en place nécessitent un client de l'API Docs (non inclus dans gog).
gog gmail searchrenvoie une ligne par fil de discussion ; utilisezgog gmail messages searchlorsque vous avez besoin de chaque e-mail individuel renvoyé séparément.