O que gog faz?
Use gog para Gmail/Calendário/Drive/Contatos/Planilhas/Documentos. Requer configuração OAuth.
Prefira uma conta host já autorizada: execute o comando gog solicitado primeiro. Entre na configuração apenas após um erro de autenticação. Nunca peça senhas, client secrets ou refresh tokens no chat.
Configuração (uma vez)
gog auth credentials /caminho/para/client_secret.jsongog auth add [email protected] --services gmail,calendar,drive,contacts,docs,sheetsgog auth list
Hosts Gateway remotos / sem interface gráfica
Quando o host Gateway não possui exibição local do navegador:
- Prefira um listener de callback ativo no host Gateway. Da máquina com navegador, encaminhe a porta exata do callback (
ssh -L <porta>:127.0.0.1:<porta> usuario@gateway-host), abra a URL de autorização quegogimprime e deixe o redirecionamento completar nessa porta encaminhada. - Quando um listener ativo não estiver disponível, o operador escolhe um caminho de modo de colagem (paste-mode) em um shell confiável no host Gateway. URLs de callback nunca devem entrar no chat ou na entrada de ferramenta do agente:
--manual: o operador cola a URL de redirecionamento completa no prompt interativo dogog.--remote --step 1: imprimeauth_url(estate_reused) e sai. Após o consentimento no navegador, o operador executa--remote --step 2 --auth-url <callback-url>no shell confiável. Um carregamento de páginalocalhostcom falha após o consentimento é esperado.
- Mantenha o mesmo contexto de configuração resolvido entre as etapas remotas:
GOG_CONFIG_DIRtem precedência sobre--home, que tem precedência sobreGOG_HOME. Preserve também--client, services/scopes, URI de redirecionamento e opções de consentimento. O estado manual não expirado correspondente pode ser reutilizado (state_reused=true). - Se o keyring da área de trabalho não estiver disponível, configure o backend de arquivo (
gog auth keyring file) e definaGOG_KEYRING_PASSWORDno ambiente do Gateway para que execuções não interativas do agente/--no-inputpossam ler tokens.gog auth doctorrelata quando a senha está ausente. - Callback recebido não é o mesmo que token armazenado. Se a troca de token ou a consulta de identidade falhar atrás de um proxy, reinicie da etapa 1 após o operador aprovar exceções de escopo de saída ou proxy para os endpoints Google necessários. Não ignore a política de rede do host nem reutilize estado com falha ou expirado.
Para diagnóstico, inspecione cada entrada relatada por gog auth list --check; seu status de saída não prova que cada token armazenado é válido. Da mesma forma, inspecione o status relatado por gog auth doctor em vez de confiar apenas em seu código de saída.
Comandos comuns
- Pesquisar no Gmail:
gog gmail search 'newer_than:7d' --max 10 - Pesquisar mensagens do Gmail (por e-mail, ignora linhas de assunto):
gog gmail messages search "in:inbox from:ryanair.com" --max 20 --account [email protected] - Enviar e-mail (simples):
gog gmail send --to [email protected] --subject "Oi" --body "Olá" - Enviar e-mail (multilinha):
gog gmail send --to [email protected] --subject "Oi" --body-file ./message.txt - Enviar e-mail (stdin):
gog gmail send --to [email protected] --subject "Oi" --body-file - - Enviar e-mail (HTML):
gog gmail send --to [email protected] --subject "Oi" --body-html "<p>Olá</p>" - Rascunho de e-mail:
gog gmail drafts create --to [email protected] --subject "Oi" --body-file ./message.txt - Enviar rascunho:
gog gmail drafts send <draftId> - Responder e-mail:
gog gmail send --to [email protected] --subject "Re: Oi" --body "Resposta" --reply-to-message-id <msgId> - Listar eventos do Calendário:
gog calendar events <calendarId> --from <iso> --to <iso> - Criar evento no Calendário:
gog calendar create <calendarId> --summary "Título" --from <iso> --to <iso> - Criar evento com cor:
gog calendar create <calendarId> --summary "Título" --from <iso> --to <iso> --event-color 7 - Atualizar evento no Calendário:
gog calendar update <calendarId> <eventId> --summary "Novo Título" --event-color 4 - Mostrar cores do Calendário:
gog calendar colors - Pesquisar no Drive:
gog drive search "consulta" --max 10 - Contatos:
gog contacts list --max 20 - Obter dados de Planilha:
gog sheets get <sheetId> "Tab!A1:D10" --json - Atualizar Planilha:
gog sheets update <sheetId> "Tab!A1:B2" --values-json '[["A","B"],["1","2"]]' --input USER_ENTERED - Anexar à Planilha:
gog sheets append <sheetId> "Tab!A:C" --values-json '[["x","y","z"]]' --insert INSERT_ROWS - Limpar Planilha:
gog sheets clear <sheetId> "Tab!A2:Z" - Metadados da Planilha:
gog sheets metadata <sheetId> --json - Exportar Documento:
gog docs export <docId> --format txt --out /tmp/doc.txt - Exibir Documento:
gog docs cat <docId>
Cores do Calendário
- Use
gog calendar colorspara ver todas as cores de evento disponíveis (IDs 1-11) - Adicione cores aos eventos com a flag
--event-color <id> - IDs das cores de evento (da saída 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
Formatação de E-mail
-
Prefira texto simples. Use
--body-filepara mensagens com vários parágrafos (ou--body-file -para stdin). -
O mesmo padrão
--body-filefunciona para rascunhos e respostas. -
--bodynão interpreta\n. Se você precisar de quebras de linha inline, use um heredoc ou$'Linha 1\n\nLinha 2'. -
Use
--body-htmlapenas quando precisar de formatação rica. -
Tags HTML:
<p>para parágrafos,<br>para quebras de linha,<strong>para negrito,<em>para itálico,<a href="url">para links,<ul>/<li>para listas. -
Exemplo (texto simples via stdin):
gog gmail send --to [email protected] \ --subject "Acompanhamento de Reunião" \ --body-file - <<'EOF' Olá Nome, Obrigado pela reunião de hoje. Próximos passos: - Item um - Item dois Atenciosamente, Seu Nome EOF -
Exemplo (lista HTML):
gog gmail send --to [email protected] \ --subject "Acompanhamento de Reunião" \ --body-html "<p>Olá Nome,</p><p>Obrigado pela reunião de hoje. Aqui estão os próximos passos:</p><ul><li>Item um</li><li>Item dois</li></ul><p>Atenciosamente,<br>Seu Nome</p>"
Notas
- Defina
[email protected]para evitar repetir--account. - Para scripts, prefira
--jsonmais--no-input. - Valores de planilhas podem ser passados via
--values-json(recomendado) ou como linhas inline. - Documentos suporta exportar/exibir/copiar. Edições no local requerem um cliente da API de Documentos (não disponível no gog).
gog gmail searchretorna uma linha por thread; usegog gmail messages searchquando precisar de cada e-mail individual retornado separadamente.