#Arreglar gog auth

1 messages · Page 1 of 1 (latest)

mighty anvil
#

Realizar verificaciones completas de Autenticacion de Google, para leer, escribir, mover, ordenar, borrar los archivos de las herramientas de Google. Gmail Task, Drive, Docs, Sheets y de las demas herramientas

#

Krill?

#

Realizar verificaciones completas de Autenticacion de Google, para leer, escribir, mover, ordenar, borrar los archivos de las herramientas de Google. Gmail Task, Drive, Docs, Sheets y de las demas herramientas

jagged martenBOT
#

Ya vi el problema base: en esta instancia gog ni siquiera está instalado, así que no puedo hacer una prueba real end-to-end desde aquí. Voy a verificar la ruta correcta y te dejo el checklist exacto para validar permisos reales sin inventar comandos.

#

Ya comprobé lo que sí podía desde aquí.

Hallazgo principal: en esta instancia gog no está instalado, así que no puedo ejecutar la batería real contra tu cuenta Google desde este hilo.
También confirmé que gog actual sí soporta Gmail, Tasks, Drive, Docs, Sheets y más.

Para validar leer, escribir, mover, ordenar/organizar y borrar, necesitas scopes de escritura, no --readonly.

1) Pásame esto primero

No pegues tu client_secret.json, solo la salida de estos comandos.

openclaw --version
which gog
gog --version
gog auth list --check
GOG_ACCOUNT="TU_CORREO@gmail.com" gog auth status
#
GOG_ACCOUNT="TU_CORREO@gmail.com" gog auth services

2) Si faltan permisos, reautoriza así

gog auth add TU_CORREO@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent

3) Pruebas funcionales reales

Gmail

GOG_ACCOUNT="TU_CORREO@gmail.com" gog gmail labels list
GOG_ACCOUNT="TU_CORREO@gmail.com" gog gmail search 'newer_than:7d' --max 5
GOG_ACCOUNT="TU_CORREO@gmail.com" gog gmail drafts create --subject "gog auth test" --body "ok"
#

Tasks

GOG_ACCOUNT="TU_CORREO@gmail.com" gog tasks lists --max 20
GOG_ACCOUNT="TU_CORREO@gmail.com" gog tasks lists create "gog-auth-test"
GOG_ACCOUNT="TU_CORREO@gmail.com" gog tasks add <tasklistId> --title "test"
GOG_ACCOUNT="TU_CORREO@gmail.com" gog tasks done <tasklistId> <taskId>
GOG_ACCOUNT="TU_CORREO@gmail.com" gog tasks delete <tasklistId> <taskId>

Drive

echo "test" >/tmp/gog-auth-test.txt
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive mkdir "gog-auth-test"
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive upload /tmp/gog-auth-test.txt --parent <folderId>
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive rename <fileId> "gog-auth-test-renamed.txt"
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive move <fileId> --parent <destinationFolderId>
#
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive delete <fileId>

Docs

GOG_ACCOUNT="TU_CORREO@gmail.com" gog docs create "gog-auth-doc"
GOG_ACCOUNT="TU_CORREO@gmail.com" gog docs update <docId> --text "hola"
GOG_ACCOUNT="TU_CORREO@gmail.com" gog docs export <docId> --format txt --out /tmp/gog-auth-doc.txt
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive delete <docId>

Sheets

printf 'a,b\n1,2\n' >/tmp/gog-auth.csv
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive upload /tmp/gog-auth.csv --convert-to sheet
#
GOG_ACCOUNT="TU_CORREO@gmail.com" gog sheets update <spreadsheetId> 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="TU_CORREO@gmail.com" gog sheets append <spreadsheetId> 'Sheet1!A:B' --values-json '[["3","4"]]'
GOG_ACCOUNT="TU_CORREO@gmail.com" gog sheets clear <spreadsheetId> 'Sheet1!A1:B10'
GOG_ACCOUNT="TU_CORREO@gmail.com" gog drive delete <spreadsheetId>

4) Mapa rápido de scopes

  • Gmail: gmail
  • Tasks: tasks
  • Drive: drive
  • Docs: drive + documents
  • Sheets: drive + spreadsheets

Si pegas la salida de gog auth list --check y gog auth status, te digo exactamente qué permiso o API te falta.
Referencia general: https://docs.openclaw.ai/faq y https://gogcli.sh/

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ openclaw --version
which gog
gog --version
gog auth list --check
GOG_ACCOUNT="TU_CORREO@gmail.com" gog auth status
OpenClaw 2026.4.15 (041266a)
/home/alexifra/.local/bin/gog
v0.12.0 (c18c58c 2026-03-09T05:53:14Z)
read token for alexifra@gmail.com: read token: aes.KeyUnwrap(): integrity check failed.
config_path /home/alexifra/.config/gogcli/config.json
config_exists false
keyring_backend file
keyring_backend_source env
account TU_CORREO@gmail.com
client default
credentials_path /home/alexifra/.config/gogcli/credentials.json
credentials_exists true
auth_preferred oauth
service_account_configured false

jagged martenBOT
#

Ya encontré el bloqueo real.

No es un problema de scopes de Google todavía.
Tu gog está bien instalado, pero el token local guardado está roto o no se puede descifrar:

read token for alexifra@gmail.com: read token: aes.KeyUnwrap(): integrity check failed.

Qué significa

Casi siempre es una de estas dos:

  1. estás forzando keyring_backend=file con una password distinta a la original, o
  2. el archivo/token cifrado local quedó corrupto.

También vi esto:

#
keyring_backend file
keyring_backend_source env

O sea, el backend file viene de una variable de entorno, no de config.

Y otra cosita: en gog auth status usaste el placeholder TU_CORREO@gmail.com. Ahí pon tu correo real.


Paso 1, confirmar el backend real

Pega esto, pero redactando cualquier password:

( env | grep '^GOG_' || true ) | sed 's/=.*$/=<redacted>/'
#
gog auth keyring
GOG_ACCOUNT="alexifra@gmail.com" gog auth status

Paso 2, arreglo más probable

Si sabes la password vieja del keyring file

Usa la misma y prueba otra vez:

export GOG_KEYRING_BACKEND=file
export GOG_KEYRING_PASSWORD='LA_MISMA_PASSWORD_DE_ANTES'
gog auth list --check
#
GOG_ACCOUNT="alexifra@gmail.com" gog auth status

Si no sabes la password, o sigue fallando

Entonces toca recrear solo la auth local de gog.

Primero intenta lo menos invasivo:

gog auth remove alexifra@gmail.com

Si eso falla también, haz backup del estado local de gog:

#
mv ~/.config/gogcli ~/.config/gogcli.bak.$(date +%Y%m%d-%H%M%S)

Luego vuelve a cargar credenciales y reautoriza:

gog auth credentials /ruta/a/tu_client_secret.json
gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent

Paso 3, verificación final

Cuando eso pase, corre:

#
gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10

Si eso funciona, ya seguimos con las pruebas de write/move/delete para Drive, Docs y Sheets.

Si quieres, pega ahora la salida de Paso 1 y te digo cuál de las dos rutas conviene.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ ( env | grep '^GOG_' || true ) | sed 's/=.*$/=<redacted>/'
gog auth keyring
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT=<redacted>
GOG_KEYRING_BACKEND=<redacted>
GOG_KEYRING_PASSWORD=<redacted>
path /home/alexifra/.config/gogcli/config.json
keyring_backend file
source env
Hint: gog auth keyring <auto|keychain|file>
config_path /home/alexifra/.config/gogcli/config.json
config_exists false
keyring_backend file
keyring_backend_source env
account alexifra@gmail.com
client default
credentials_path /home/alexifra/.config/gogcli/credentials.json
credentials_exists true
auth_preferred oauth
service_account_configured false

jagged martenBOT
#

Perfecto, ya quedó confirmado.

Diagnóstico

  • OpenClaw y gog están bien.
  • El problema es local, en la auth guardada por gog.
  • Estás usando:
    • GOG_KEYRING_BACKEND=file
    • GOG_KEYRING_PASSWORD=...
  • Y el token viejo ya no coincide con esa clave o quedó corrupto.

O sea, no estamos fallando en Gmail/Drive todavía. Estamos fallando antes, al leer el refresh token local.


Siguiente paso, el arreglo bueno

Prueba esto primero, que es lo menos invasivo:

#
gog auth remove alexifra@gmail.com
gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent
gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status

Si eso funciona, ya saliste del atasco.


Si gog auth remove falla

Entonces haz backup del estado local de gog y recrea la auth:

mv ~/.config/gogcli ~/.config/gogcli.bak.$(date +%Y%m%d-%H%M%S)
#
gog auth credentials /ruta/a/tu_client_secret.json
gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent
gog auth list --check

Qué espero ver cuando quede bien

gog auth list --check ya no debe mostrar:

aes.KeyUnwrap(): integrity check failed

Y luego sí hacemos la validación funcional:

#
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10

Mi recomendación

Ve por esta ruta:

  1. gog auth remove alexifra@gmail.com
  2. gog auth add ... --force-consent
  3. gog auth list --check

Pégame la salida de esos 3 y te digo si ya pasamos a las pruebas de write / move / delete.

jagged martenBOT
#

Bien, eso ya pinta mucho mejor.

Lo importante:

  • el token roto ya se eliminó (deleted true)
  • gog ya está pidiendo los scopes correctos para lo que quieres:
    • Docs
    • Drive
    • Gmail
    • Sheets
    • Tasks

Ahora mismo estás en la parte normal del flujo OAuth. Solo falta terminar el consentimiento en el navegador.

Haz esto ahora

  1. Completa el login/consent en Google.
  2. Cuando termine, corre:
#
gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10

Si esos 5 pasan, la autenticación ya quedó bien y seguimos con la batería de:

  • write
  • move
  • delete
  • Docs / Sheets / Drive

Ojo importante

No vuelvas a pegar la URL OAuth completa en público. Lleva parámetros temporales del login.
Si puedes, edita ese mensaje y quítala.

#

Si el navegador no vuelve correctamente a la terminal, dímelo, porque en WSL a veces falla el callback local y ahí conviene usar --manual.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10
No tokens stored
config_path /home/alexifra/.config/gogcli/config.json
config_exists false
keyring_backend file
keyring_backend_source env
account alexifra@gmail.com
client default
credentials_path /home/alexifra/.config/gogcli/credentials.json
credentials_exists true
auth_preferred oauth
service_account_configured false
No auth for gmail alexifra@gmail.com.

OAuth (browser flow):
gog auth add alexifra@gmail.com --services gmail

Workspace service account (domain-wide delegation):
gog auth service-account set alexifra@gmail.com --key <service-account.json>
No auth for tasks alexifra@gmail.com.

OAuth (browser flow):
gog auth add alexifra@gmail.com --services tasks

Workspace service account (domain-wide delegation):
gog auth service-account set alexifra@gmail.com --key <service-account.json>
No auth for drive alexifra@gmail.com.

OAuth (browser flow):
gog auth add alexifra@gmail.com --services drive

Workspace service account (domain-wide delegation):
gog auth service-account set alexifra@gmail.com --key <service-account.json>
alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$

jagged martenBOT
#

Vale, ya está claro qué pasa ahora.

Diagnóstico

El token corrupto ya no es el problema.
Ahora el problema es otro:

No tokens stored

Eso significa que el flujo OAuth no terminó de guardar ningún token.
En tu caso, lo más probable es que el callback del navegador no esté volviendo bien a WSL.

config_exists false no importa aquí. Eso está bien.


#

Hazlo en modo manual

En vez del browser flow normal, usa esto:

gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent --manual

Qué tienes que hacer

  1. gog te va a imprimir una URL.
  2. Ábrela en tu navegador.
  3. Acepta el consentimiento.
  4. Cuando Google te redirija a una URL tipo http://127.0.0.1:.../oauth2/callback?..., copia esa URL completa.
  5. Pégala en la terminal, cuando gog te la pida.

No la pegues aquí en Discord.


#

Luego verifica

Cuando termine, corre:

gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10

Si eso ya pasa, te doy la batería final para probar:

  • crear
  • escribir
  • mover
  • borrar
  • Docs / Sheets / Drive
#

Si --manual también falla, te doy la variante --remote --step 1/2, pero normalmente con WSL --manual es la buena.

#

No lo movería fuera de aquí.

Para este caso, el siguiente paso sigue siendo --manual en gog auth add.
Si después de eso sigue fallando, entonces sí toca abrir issue en GitHub con la salida redactada, no llevarlo a otro Discord:

https://github.com/openclaw/openclaw/issues

Ale, prueba esto y pega solo la salida final, sin la URL OAuth completa:

gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent --manual
jagged martenBOT
#

Sí, eso es justo lo correcto 👍

Ahora no la pegues aquí.
La URL de retorno hay que pegarla en la terminal, en esta línea:

Paste redirect URL (Enter or Ctrl-D):

Pasos

  1. Abre la URL en el navegador.
  2. Acepta el consentimiento.
  3. Cuando termine en una URL http://127.0.0.1:.../oauth2/callback?...
  4. Copia esa URL completa desde la barra del navegador
  5. Pégala en la terminal, no en Discord

Luego corre:

#
gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10

Y me pegas solo esa salida final.
Si puedes, edita también este mensaje y quita la URL OAuth completa.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent --manual
Visit this URL to authorize:
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=584041476396-ul70gmrsdqvjmjvk1dtl34dku0kdlvjp.apps.googleusercontent.com&include_granted_scopes=true&prompt=consent&redirect_uri=http%3A%2F%2F127.0.0.1%3A45653%2Foauth2%2Fcallback&response_type=code&scope=email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocuments+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.settings.basic+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.settings.sharing+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspreadsheets+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ftasks+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&state=akDphM21XrgxJwU41A_5S9LtOpfMQaVd0yFdx2lv-rY

After authorizing, you'll be redirected to a loopback URL that won't load.
Copy the URL from your browser's address bar and paste it here.

Paste redirect URL (Enter or Ctrl-D): https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=584041476396-ul70gmrsdqvjmjvk1dtl34dku0kdlvjp.apps.googleusercontent.com&include_granted_scopes=true&prompt=consent&redirect_uri=http%3A%2F%2F127.0.0.1%3A45653%2Foauth2%2Fcallback&response_type=code&scope=email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocuments+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.settings.basic+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.settings.sharing+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspreadsheets+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ftasks+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&state=akDphM21XrgxJwU41A_5S9LtOpfMQaVd0yFdx2lv-rY
no code found in URL

jagged martenBOT
#

Ah, ya vi el fallo.

Pegaste la URL inicial de autorización, no la URL final de retorno.
Por eso gog dice:

no code found in URL

La que necesitas pegar en la terminal es la que, después de aceptar en Google, queda en la barra del navegador y se parece a esto:

http://127.0.0.1:45653/oauth2/callback?code=...&state=...

No la que empieza con:

#
https://accounts.google.com/o/oauth2/auth?...

Te recomiendo hacerlo así, más claro

Paso 1

gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent --remote --step 1

Eso te imprimirá la URL para abrir en el navegador.

Paso 2

Después de aceptar en Google, copia la URL final de la barra del navegador, la que empieza por http://127.0.0.1:.../oauth2/callback?...

#

Y ejecútala así:

gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent --remote --step 2 --auth-url 'PEGA_AQUI_LA_URL_CALLBACK_COMPLETA'

Luego verifica

gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10
#

Y de nuevo, no pegues aquí la URL completa del navegador, solo la salida final de esos checks.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ gog auth add alexifra@gmail.com --services gmail,drive,docs,sheets,tasks --force-consent --manual
Visit this URL to authorize:
https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=584041476396-ul70gmrsdqvjmjvk1dtl34dku0kdlvjp.apps.googleusercontent.com&include_granted_scopes=true&prompt=consent&redirect_uri=http%3A%2F%2F127.0.0.1%3A45653%2Foauth2%2Fcallback&response_type=code&scope=email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdocuments+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.modify+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.settings.basic+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.settings.sharing+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspreadsheets+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ftasks+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+openid&state=akDphM21XrgxJwU41A_5S9LtOpfMQaVd0yFdx2lv-rY

After authorizing, you'll be redirected to a loopback URL that won't load.
Copy the URL from your browser's address bar and paste it here.

Paste redirect URL (Enter or Ctrl-D): http://127.0.0.1:45653/oauth2/callback?state=akDphM21XrgxJwU41A_5S9LtOpfMQaVd0yFdx2lv-rY&iss=https://accounts.google.com&code=4/0Aci98E-YDGbkCRnpbehFHjg5TYnjmgRwJPjGZvgzwAqd9bi2Xsb1z9ZDssUsuMdTcJ-SRQ&scope=email profile https://www.googleapis.com/auth/documents https://www.googleapis.com/auth/spreadsheets https://www.googleapis.com/auth/tasks https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email openid https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/forms.responses.readonly https://www.googleapis.com/auth/forms.body https://www.googleapis.com/auth/chat.users.readstate.readonly https://www.googleapis.com/auth/chat.spaces https://www.googleapis.com/auth/chat.messages https://www.googleapis.com/auth/chat.memberships https://www.googleapis.com/auth/directory.readonly https://www.googleapis.com/auth/classroom.courseworkmaterials https://www.googleapis.com/auth/classroom.topics https://www.googleapis.com/auth/classroom.announcements https://www.googleapis.com/auth/classroom.guardianlinks.students https://www.googleapis.com/auth/classroom.coursework.students https://www.googleapis.com/auth/classroom.coursework.me https://www.googleapis.com/auth/classroom.profile.emails https://www.googleapis.com/auth/classroom.profile.photos https://www.googleapis.com/auth/classroom.rosters https://www.googleapis.com/auth/classroom.courses https://www.googleapis.com/auth/contacts.other.readonly https://www.googleapis.com/auth/contacts https://www.googleapis.com/auth/script.processes https://www.googleapis.com/auth/script.deployments https://www.googleapis.com/auth/script.projects https://www.googleapis.com/auth/drive.file https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/gmail.settings.sharing https://www.googleapis.com/auth/gmail.settings.basic https://www.googleapis.com/auth/gmail.modify&authuser=0&prompt=consent
email alexifra@gmail.com
services docs,drive,gmail,sheets,tasks
client default

jagged martenBOT
#

Sí, ahí ya quedó autenticado

La parte importante es esta:

email   alexifra@gmail.com
services        docs,drive,gmail,sheets,tasks
client  default

O sea, el alta de auth sí entró bien.

Antes que nada

Ese mensaje contiene un authorization code real.
Si puedes, edítalo o bórralo del hilo.


#

Verificación final de lectura

Corre esto primero:

gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog gmail labels list
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10

Si eso pasa, la auth base ya está bien.


Pruebas seguras de escritura / borrado

#

Gmail, escritura segura

GOG_ACCOUNT="alexifra@gmail.com" gog gmail drafts create --subject "gog auth test" --body "ok"

Tasks, crear / completar / borrar

GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists create "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog tasks add <tasklistId> --title "test"
GOG_ACCOUNT="alexifra@gmail.com" gog tasks done <tasklistId> <taskId>
GOG_ACCOUNT="alexifra@gmail.com" gog tasks delete <tasklistId> <taskId>

Drive, subir / renombrar / mover / borrar

echo "test" >/tmp/gog-auth.txt
#
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog drive upload /tmp/gog-auth.txt --parent <folderId>
GOG_ACCOUNT="alexifra@gmail.com" gog drive rename <fileId> "gog-auth-renamed.txt"
GOG_ACCOUNT="alexifra@gmail.com" gog drive move <fileId> --parent <destinationFolderId>
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete <fileId>

Docs, crear / leer / exportar / borrar

GOG_ACCOUNT="alexifra@gmail.com" gog docs create "gog-auth-doc"
GOG_ACCOUNT="alexifra@gmail.com" gog docs cat <docId>
GOG_ACCOUNT="alexifra@gmail.com" gog docs export <docId> --format txt --out /tmp/gog-auth-doc.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete <docId>

Sheets, leer / escribir / append / clear

#

Usa un spreadsheet de prueba:

GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata <spreadsheetId>
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update <spreadsheetId> 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets append <spreadsheetId> 'Sheet1!A:B' --values-json '[["3","4"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear <spreadsheetId> 'Sheet1!A1:B10'

Si quieres, pega ahora solo la salida de la parte de lectura y te digo si ya damos esto por bueno o si falta afinar algo.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog gmail drafts create --subject "gog auth test" --body "ok"
draft_id r1276491520003207421
message_id 19dac98013c26f42
thread_id 19dac98013c26f42

jagged martenBOT
#

Perfecto, eso ya confirma Gmail write

Se creó el draft correctamente, así que:

  • auth de Gmail funciona
  • permisos de escritura de Gmail funcionan

Siguiente bloque, para cerrar el resto

Tasks

GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists create "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10

Drive

#
echo "test" >/tmp/gog-auth.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10

Docs

GOG_ACCOUNT="alexifra@gmail.com" gog docs create "gog-auth-doc"

Sheets

Si ya tienes un spreadsheet de prueba, usa:

GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata <spreadsheetId>
#

Pega la salida de esos bloques y te digo si ya queda verificado Tasks + Drive + Docs + Sheets también.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists create "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog tasks lists --max 10
id dHBEYUctR3dRZDZWcEZ2cg
title gog-auth-test ID TITLE
MTM1NDA4NTU3MjU0NDM2NzYzNDM6MDow Ale Xifra varios
Zng5bUZ2OGZiNno2RXNkNQ Construtecnia 2026
bDRaRkpTcGZUMjF5aS04WQ Formacion IA Personal
YVR3ZGlaSkhCQVdIR0FiMw ormacion IA Personal
emhIYXBaQmZjSHZheGFpSg Tareas diarias y proyectos personales
VkV2bERONEJJZEJJVWE5bw Solarte Deco
UVAxS1Z5bURoOFpMZ0VqdA Proyectos AGENTE especialista en movilidad eléctrica y hybrida
RXljZUpQQjVLdUFVZWduUw Taipan
MUZPVmhtMEZ0UFNhV1B0ZQ Polar PY
ZHp1bUlJTThmT1Fiek5aUw RedNova

jagged martenBOT
#

Buenísimo, Tasks create + list ya quedó confirmado ✅

Eso valida:

  • auth de Tasks
  • escritura en Tasks
  • lectura en Tasks

Y pequeño apunte, por privacidad ya no hace falta pegar listas reales enteras, con el resultado corto basta.

Cierra Tasks del todo con add/delete

Usa el tasklist nuevo:

GOG_ACCOUNT="alexifra@gmail.com" gog tasks add dHBEYUctR3dRZDZWcEZ2cg --title "auth test task"
GOG_ACCOUNT="alexifra@gmail.com" gog tasks list dHBEYUctR3dRZDZWcEZ2cg --max 10
#

Luego, con el taskId que salga:

GOG_ACCOUNT="alexifra@gmail.com" gog tasks done dHBEYUctR3dRZDZWcEZ2cg <taskId>
GOG_ACCOUNT="alexifra@gmail.com" gog tasks delete dHBEYUctR3dRZDZWcEZ2cg <taskId>

Siguiente bloque: Drive + Docs

echo "test" >/tmp/gog-auth.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog docs create "gog-auth-doc"

Sheets

Si tienes una hoja de prueba:

#
GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata <spreadsheetId>

Pega la salida de Tasks add/list y Drive/Docs, y con eso ya casi cerramos todo.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog tasks add dHBEYUctR3dRZDZWcEZ2cg --title "auth test task"
GOG_ACCOUNT="alexifra@gmail.com" gog tasks list dHBEYUctR3dRZDZWcEZ2cg --max 10
id c1h0ZE5PY0tCU2lRdHhFMg
title auth test task
status needsAction
link https://tasks.google.com/task/sXtdNOcKBSiQtxE2?sa=6
ID TITLE STATUS DUE UPDATED
c1h0ZE5PY0tCU2lRdHhFMg auth test task needsAction 2026-04-20T20:37:42.102Z
alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog tasks done dHBEYUctR3dRZDZWcEZ2cg <taskId>
GOG_ACCOUNT="alexifra@gmail.com" gog tasks delete dHBEYUctR3dRZDZWcEZ2cg <taskId>
-bash: syntax error near unexpected token newline' -bash: syntax error near unexpected token newline'

jagged martenBOT
#

Sí, Tasks ya quedó casi cerrado, solo te tropezó el placeholder.

<taskId> era un ejemplo. En bash, los < > se interpretan y por eso falló.

Usa el ID real que te devolvió gog:

GOG_ACCOUNT="alexifra@gmail.com" gog tasks done dHBEYUctR3dRZDZWcEZ2cg c1h0ZE5PY0tCU2lRdHhFMg
GOG_ACCOUNT="alexifra@gmail.com" gog tasks delete dHBEYUctR3dRZDZWcEZ2cg c1h0ZE5PY0tCU2lRdHhFMg

Con eso ya validas Tasks create + read + update + delete

Luego sigue con Drive + Docs

echo "test" >/tmp/gog-auth.txt
#
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog docs create "gog-auth-doc"

Y si tienes una hoja de prueba, Sheets

GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata <spreadsheetId>

Pega la salida de tasks done/delete y Drive/Docs y ya te doy el veredicto final.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog tasks done dHBEYUctR3dRZDZWcEZ2cg c1h0ZE5PY0tCU2lRdHhFMg
GOG_ACCOUNT="alexifra@gmail.com" gog tasks delete dHBEYUctR3dRZDZWcEZ2cg c1h0ZE5PY0tCU2lRdHhFMg
id c1h0ZE5PY0tCU2lRdHhFMg
status completed
Proceed to delete task c1h0ZE5PY0tCU2lRdHhFMg from list dHBEYUctR3dRZDZWcEZ2cg? [y/N]: y
deleted true
id c1h0ZE5PY0tCU2lRdHhFMg

jagged martenBOT
#

Perfecto, Tasks quedó totalmente verificado

Ya validaste en Tasks:

  • crear lista
  • listar
  • crear tarea
  • marcar completada
  • borrar

Estado actual

  • Gmail write
  • Tasks read/write/delete
  • Drive pendiente
  • Docs pendiente
  • Sheets pendiente

Siguiente bloque

#
echo "test" >/tmp/gog-auth.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog docs create "gog-auth-doc"

Y si tienes una hoja de prueba para Sheets:

GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata <spreadsheetId>

Pega esa salida y ya te cierro el diagnóstico final.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ echo "test" >/tmp/gog-auth.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-test"
GOG_ACCOUNT="alexifra@gmail.com" gog drive ls --max 10
GOG_ACCOUNT="alexifra@gmail.com" gog docs create "gog-auth-doc"
id 1Vzic54QWu2xwqt_dabQXqNnltpkNZp1H
name gog-auth-test
link https://drive.google.com/drive/folders/1Vzic54QWu2xwqt_dabQXqNnltpkNZp1H
Next page: --page ~!!~AI9FV7TtvzLs5ICJRP1M6BZ8DhoEE1fbyA8uAaz0Aiuvv_r1zqmkNIFSC8iVQmz_OMbb8M44DtONmscs-j9dZ8pa2SxriRAWuuL0FXBkGpvwQPVYa--W7ATL7E6NTbZ45vDXczzuWur4WyVqgByOAIDjSFZVwa8KyDdFrDxxbB90DomFOfVmji8Gda3pmaaozl26G1OJpIKd4WzrQtA2rnLar1K6MTUZH1q2LmXcv85-n41o3ClWgaZpwhLRh_JAdof5ofe6Yp9VirCqDZghagiILWrTBy41VirYAAFn8ALcdJQKcD4s9DVRf989G4Vgp9Y37d7huBUyfKnCaa4dcTUZ3lyIOB4U661ydiitfu6J7khCfXMOvaltYz55pwZ28OoFF1NRTIBT
ID NAME TYPE SIZE MODIFIED
1Vzic54QWu2xwqt_dabQXqNnltpkNZp1H gog-auth-test folder - 2026-04-20 20:41
1JvFF2WKLo5uJrDYQqq2bkolaXfb5Xl55l-6Twpw9n4E Lab N8N GMAIL file 220.5 KB 2026-04-20 20:28
1YhxRuFnUZS2TIJ5pgj8cQySRqT3Kipmd Instrucciones OpenClaw Backups y credenciales folder - 2026-04-20 19:49
1YZuQ9K9d7iR_eDlooFK9zkf9udDZ8fUzS7AIzMOoByk API KEY y Claves file 1.0 KB 2026-04-19 19:46
1Lenq2vpPfCBsmHQ5Cow15yHkhkUf4PJMhPVq79BJQM8 Análisis de Precios de Cortinas por M2 + Tupy file 37.0 KB 2026-04-19 12:23
1Lx6Z62kYil4qMMbH9RdtLnbSaMeAZKR8ffK3_EtdIYM Análisis de Precios de Cortinas por M2 file 24.9 KB 2026-04-19 12:08
19guyHlnqWY7gzAP-HdYVb6knKkk0RcxtARuv6PfXCq0 Trabajo+de+proceso+2+-+GRUPO+82 file 7.0 KB 2026-04-14 01:58
1qIeqQPKBKVJ5ECrt8zTNeoQQ-iRQBb0xEQ89WJWx27w Trabajo de proceso 2 - Tobias Sanchez.- file 7.8 KB 2026-04-14 01:40
1QdJCBiXG8SOmJCleX3BWmUFqpaMOUjbdjg9TLTLJaV4 Trabajo+de+proceso+1+-+GRUPO+82 file 6.2 KB 2026-04-14 01:26
110_V24eh-7ELKr137VBtWqZ6TClu7LnpSNuwUU3bdtA Trabajo+de+proceso+1+-+GRUPO+82 file 6.3 KB 2026-04-12 21:05
id 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0
name gog-auth-doc
mime application/vnd.google-apps.document
link https://docs.google.com/document/d/1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0/edit?usp=drivesdk

jagged martenBOT
#

Nice, con eso ya quedaron confirmados también:

  • Drive read ✅ (ls)
  • Drive create folder ✅ (mkdir)
  • Docs create

Ya solo faltan las pruebas finales de move/delete en Drive, read/export/delete en Docs, y create/read/write/clear/delete en Sheets.

Y de verdad, ya no pegues listados completos de Drive, ahí salen nombres sensibles 😅

Remate final, usando solo objetos de prueba

1) Drive, upload / rename / move / delete

Sube el txt al folder de prueba que ya creaste (1Vzic54QWu2xwqt_dabQXqNnltpkNZp1H):

#
GOG_ACCOUNT="alexifra@gmail.com" gog drive upload /tmp/gog-auth.txt --parent 1Vzic54QWu2xwqt_dabQXqNnltpkNZp1H

Eso te devolverá un id. Llámalo FILE_ID y sigue:

GOG_ACCOUNT="alexifra@gmail.com" gog drive rename FILE_ID "gog-auth-renamed.txt"
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-dest"

Eso te devolverá otro id. Llámalo DEST_ID y sigue:

GOG_ACCOUNT="alexifra@gmail.com" gog drive move FILE_ID --parent DEST_ID
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete FILE_ID
#

2) Docs, read / export / delete

Usa el doc que ya creaste (1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0):

GOG_ACCOUNT="alexifra@gmail.com" gog docs cat 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --max-bytes 10000
GOG_ACCOUNT="alexifra@gmail.com" gog docs export 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --format txt --out /tmp/gog-auth-doc.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0

3) Sheets, create / read / write / clear / delete

GOG_ACCOUNT="alexifra@gmail.com" gog sheets create "gog-auth-sheet" --sheets "Sheet1"

Eso te devolverá un spreadsheetId. Luego:

#
GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata SPREADSHEET_ID
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update SPREADSHEET_ID 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear SPREADSHEET_ID 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete SPREADSHEET_ID

Si esos bloques pasan, te doy ya el veredicto final de que quedó completa la verificación.

mighty anvil
jagged martenBOT
#

Perfecto, eso confirma Drive upload

Ya tienes el FILE_ID:

1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN

Sigue con esto:

GOG_ACCOUNT="alexifra@gmail.com" gog drive rename 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN "gog-auth-renamed.txt"
GOG_ACCOUNT="alexifra@gmail.com" gog drive mkdir "gog-auth-dest"

Cuando te devuelva el id del folder destino, corre:

#
GOG_ACCOUNT="alexifra@gmail.com" gog drive move 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN --parent DEST_ID
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN

Y si quieres ir adelantando Docs también:

GOG_ACCOUNT="alexifra@gmail.com" gog docs cat 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --max-bytes 10000
GOG_ACCOUNT="alexifra@gmail.com" gog docs export 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --format txt --out /tmp/gog-auth-doc.txt
mighty anvil
jagged martenBOT
#

Nice, Drive rename y crear carpeta destino ya están confirmados ✅

Ahora remátalo con move + delete:

GOG_ACCOUNT="alexifra@gmail.com" gog drive move 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN --parent 1ojc1Ov7kHab7tHD1O-z2TZFfRmbJJIrD
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN

Y para Docs read/export:

GOG_ACCOUNT="alexifra@gmail.com" gog docs cat 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --max-bytes 10000
GOG_ACCOUNT="alexifra@gmail.com" gog docs export 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --format txt --out /tmp/gog-auth-doc.txt

Si eso pasa, ya solo nos queda delete en Docs y Sheets.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog drive move 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN --parent 1ojc1Ov7kHab7tHD1O-z2TZFfRmbJJIrD
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN
id 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN
name gog-auth-renamed.txt
Proceed to trash drive file 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN? [y/N]: y
trashed true
deleted false
id 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN

jagged martenBOT
#

Perfecto. Con eso Drive ya quedó verificado

Y ojo, este detalle está bien:

trashed true
deleted false

Eso significa que gog drive delete por defecto manda a la papelera, no borra irreversible.
Para una prueba es mejor así.

Estado

  • Gmail
  • Tasks
  • Drive create / read / rename / move / delete-to-trash
  • Docs falta read/export/delete
#
  • Sheets falta create/read/write/clear/delete

Cierra Docs

GOG_ACCOUNT="alexifra@gmail.com" gog docs cat 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --max-bytes 10000
GOG_ACCOUNT="alexifra@gmail.com" gog docs export 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --format txt --out /tmp/gog-auth-doc.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0

Y luego Sheets

GOG_ACCOUNT="alexifra@gmail.com" gog sheets create "gog-auth-sheet" --sheets "Sheet1"

Eso te devolverá un spreadsheetId. Luego:

#
GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata SPREADSHEET_ID
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update SPREADSHEET_ID 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear SPREADSHEET_ID 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete SPREADSHEET_ID

Pega esas salidas y te cierro el veredicto final.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog docs cat 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --max-bytes 10000
GOG_ACCOUNT="alexifra@gmail.com" gog docs export 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0 --format txt --out /tmp/gog-auth-doc.txt
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0

path /tmp/gog-auth-doc.txt
size 3 B
Proceed to trash drive file 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0? [y/N]: y
trashed true
deleted false
id 1jVAyZNxD1O5LJ2EkytARotrwdeyfFU2-xqDfHGY7_g0

jagged martenBOT
#

Perfecto, Docs también quedó verificado

Eso confirma:

  • lectura (docs cat)
  • exportación (docs export)
  • borrado a papelera vía Drive (drive delete)

El size 3 B cuadra con que el doc de prueba estaba prácticamente vacío.

Ya solo falta Sheets

GOG_ACCOUNT="alexifra@gmail.com" gog sheets create "gog-auth-sheet" --sheets "Sheet1"

Eso te devolverá un spreadsheetId. Luego corre:

#
GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata SPREADSHEET_ID
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update SPREADSHEET_ID 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear SPREADSHEET_ID 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete SPREADSHEET_ID

Cuando pegues eso, ya te cierro la verificación completa de Gmail + Tasks + Drive + Docs + Sheets.

mighty anvil
jagged martenBOT
#

Ahí ya quedó el diagnóstico final.

Veredicto

La autenticación está bien.
Lo que falla ahora no es OAuth, sino la configuración del proyecto de Google Cloud para Sheets.

Estado real

  • Gmail
  • Tasks
  • Drive
  • Docs
  • Sheets ❌ bloqueado por API deshabilitada

El error es clarísimo:

#
GOG_ACCOUNT="alexifra@gmail.com" gog sheets create "gog-auth-sheet" --sheets "Sheet1"
GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata SPREADSHEET_ID
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update SPREADSHEET_ID 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear SPREADSHEET_ID 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete SPREADSHEET_ID

Resumen corto

Tu verificación completa quedó así:

  • Auth rota al inicio → arreglada ✅
  • Gmail read/write ✅
  • Tasks CRUD ✅
  • Drive create/list/upload/rename/move/delete-to-trash ✅
  • Docs create/read/export/delete-to-trash ✅
  • Sheets pendiente solo por API deshabilitada
#

En cuanto habilites esa API, debería cerrar limpio.
Si quieres, pega la salida del retry de Sheets y lo damos por terminado.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog sheets create "gog-auth-sheet" --sheets "Sheet1"
GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata SPREADSHEET_ID
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update SPREADSHEET_ID 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear SPREADSHEET_ID 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete SPREADSHEET_ID
Created spreadsheet: gog-auth-sheet
ID: 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
URL: https://docs.google.com/spreadsheets/d/1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8/edit
Google API error (404 notFound): Requested entity was not found.
Google API error (404 notFound): Requested entity was not found.
Google API error (404 notFound): Requested entity was not found.
Proceed to trash drive file SPREADSHEET_ID? [y/N]: y
Google API error (404 notFound): File not found: SPREADSHEET_ID.

jagged martenBOT
#

Sí, ahí el problema ya no es ni auth ni la API.

Sheets ya está funcionando, porque esto salió bien:

Created spreadsheet: gog-auth-sheet
ID: 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8

Los 404 notFound pasaron porque ejecutaste literalmente SPREADSHEET_ID en vez del ID real.

Usa este ID exacto:

1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
#

Corre esto tal cual

GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8

Estado real ahora

  • Gmail
  • Tasks
  • Drive
  • Docs
  • Sheets create
  • Sheets metadata/update/clear/delete pendiente solo por usar el placeholder ❌

O sea, honestamente ya estás a nada.

#

Si eso corre bien, la verificación queda 100% completa.

Si esto ya te lo resolvió, luego marca la solución para que quede indexado en Answer Overflow 🎉

mighty anvil
#

Que seria esto ? Sheets metadata/update/clear/delete pendiente solo por usar el placeholder ❌

jagged martenBOT
#

Me refiero a esto:

Tú ejecutaste:

GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata SPREADSHEET_ID

Pero SPREADSHEET_ID era solo un marcador de ejemplo, no un valor real.

El ID real que te devolvió gog sheets create fue este:

1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8

Entonces hay que reemplazar SPREADSHEET_ID por ese valor real.

#

O sea, usa esto:

GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8

Así sí estás apuntando a la hoja que acabas de crear.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog sheets metadata 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
GOG_ACCOUNT="alexifra@gmail.com" gog sheets update 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8 'Sheet1!A1:B2' --values-json '[["a","b"],["1","2"]]'
GOG_ACCOUNT="alexifra@gmail.com" gog sheets clear 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8 'Sheet1!A1:B10'
GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
ID 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
Title gog-auth-sheet
Locale es_ES
TimeZone Etc/GMT
URL https://docs.google.com/spreadsheets/d/1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8/edit

Sheets:
ID TITLE ROWS COLS
243978064 Sheet1 1000 26
Updated 4 cells in Sheet1!A1:B2
Cleared Sheet1!A1:B10
Proceed to trash drive file 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8? [y/N]: y
trashed true
deleted false
id 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8

jagged martenBOT
#

Listo, verificación completa hecha

Resultado final

  • Gmail: auth + escritura (draft) ✅
  • Tasks: crear, leer, completar, borrar ✅
  • Drive: crear carpeta, listar, subir, renombrar, mover, borrar ✅
  • Docs: crear, leer, exportar, borrar ✅
  • Sheets: crear, metadata, escribir, limpiar, borrar ✅

Único matiz

gog drive delete por defecto manda a la papelera:

trashed true
deleted false
#

Si quieres borrado irreversible, usa --permanent.

Así que sí, tu auth de Google para gog quedó funcionando correctamente para Gmail, Tasks, Drive, Docs y Sheets 🎉

Si esto ya te lo resolvió, por favor marca la solución para que quede indexada en Answer Overflow:

click derecho en el mensaje de solución → Apps✅ Mark Solution

Y para la próxima, no pegues URLs OAuth completas en público.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ trashed true
deleted false
trashed: command not found
deleted: command not found

jagged martenBOT
#

Sí 😄, eso no eran comandos.

trashed true y deleted false eran la salida de gog, no algo para ejecutar en bash.

Significan:

  • trashed true → el archivo fue enviado a la papelera
  • deleted falseno fue borrado de forma permanente

O sea, todo bien. No hay error nuevo ahí.

Si quieres borrarlo de forma irreversible, entonces el comando sería con --permanent, por ejemplo:

GOG_ACCOUNT="alexifra@gmail.com" gog drive delete <fileId> --permanent
#

Pero para la verificación que hicimos, mandarlo a papelera ya cuenta como correcto

mighty anvil
jagged martenBOT
#

Otra vez te pasó lo mismo, \<fileId> era un placeholder, no texto literal 😄

En bash, esto:

<fileId>

no significa “pon el ID aquí”, sino que intenta hacer redirección, y por eso falla.

Si quieres borrado permanente, usa un ID real

Por ejemplo, la hoja de prueba que creaste tenía este ID:

1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8
#

Entonces sería:

GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1E0iEkT5OUdhRkeh9F0kYpcsaIzr46uCm_z88Cweumu8 --permanent

O el archivo de Drive de prueba:

GOG_ACCOUNT="alexifra@gmail.com" gog drive delete 1MssjtHAS3kJu07xi_3Ed985rdmgSJFKN --permanent

Regla rápida

  • fileId / taskId / spreadsheetId = nombres de ejemplo
  • siempre hay que sustituirlos por el ID real que te devolvió gog

Pero para la verificación de auth, ya estaba todo OK antes. Lo permanente ya es extra.

mighty anvil
#

Que mas herramientas de Google podemos habilitar para tener todo el poder de nuestro Workspace de Google ?

jagged martenBOT
#

Sí, puedes ampliar bastante, pero yo lo haría por capas, no con “todo de golpe”.

Mi recomendación

1) Pack recomendado para uso diario

Esto te da casi todo lo útil sin meterte todavía en admin:

  • Gmail
  • Calendar
  • Drive
  • Docs
  • Sheets
  • Slides
  • Tasks
  • Contacts / People
  • Forms
  • Apps Script
#

Puedes ver la matriz actual con:

gog auth services

Y autorizar casi todo el nivel usuario con:

gog auth add alexifra@gmail.com --services user --force-consent

2) Más potencia todavía

También soporta cosas como:

  • Chat
  • Classroom
#

Si las usas, súmalas al pack.

3) Nivel “Workspace admin”

Aquí ya entras en terreno serio y normalmente necesitas Google Workspace + service account + domain-wide delegation:

  • Admin SDK
  • Groups / Cloud Identity
  • Keep (Workspace)
  • algunas operaciones de directorio y org

Ahí ya no es solo OAuth de usuario.
Necesitas service account y delegación de dominio:

gog auth service-account set tu@dominio.com --key <service-account.json>
#

APIs que conviene habilitar en Google Cloud

Si quieres cobertura amplia, activa estas APIs:

  • Gmail API
  • Google Calendar API
  • Google Drive API
  • Google Docs API
  • Google Sheets API
  • Google Slides API
  • Google Tasks API
  • People API
  • Google Forms API
  • Apps Script API
  • Google Chat API
  • Google Classroom API
  • Admin SDK API
  • Cloud Identity API
#
  • Google Keep API

Resumen corto

Si quieres “casi todo el poder” de usuario:

gog auth add alexifra@gmail.com --services user --force-consent

Si quieres “todo el poder de Workspace”, además necesitas:

  • service account
  • domain-wide delegation
  • Admin SDK / Cloud Identity / Keep APIs habilitadas

Si quieres, te puedo dejar el comando exacto recomendado para un setup:

  1. personal potente
  2. empresa / Workspace admin
#
  1. máximo pero con mínimo riesgo 🦐
jagged martenBOT
#

Sí, eso ya confirma que gog tiene bastante más músculo del que estabas usando.

Mi recomendación real

Opción A, la que yo usaría

Power user sin volverte loco con scopes gigantes:

gog auth add alexifra@gmail.com --services gmail,calendar,drive,docs,sheets,slides,tasks,contacts,people,forms,appscript --force-consent

Eso te da prácticamente todo lo útil para productividad.

Opción B, “todo lo de usuario”

Si quieres casi todo lo que gog expone a nivel usuario:

#
gog auth add alexifra@gmail.com --services user --force-consent

Eso suele incluir:

  • Gmail
  • Calendar
  • Chat
  • Classroom
  • Drive
  • Docs
  • Slides
  • Contacts
  • Tasks
  • Sheets
  • People
  • Forms
#
  • Apps Script

Opción C, poder total de Workspace

Para llegar al nivel admin de verdad, ya no basta solo con tu OAuth personal.
Necesitas además:

  • Admin SDK API
  • Cloud Identity API
  • Google Keep API (si la quieres)
  • service account
  • domain-wide delegation

Y luego:

gog auth service-account set tu@dominio.com --key <service-account.json>
#

Eso es lo que te abre cosas tipo:

  • Admin
  • Groups
  • Keep
  • directorio / dominio

Mi consejo

  • Si eres usuario avanzado: usa Opción A
  • Si quieres laboratorio completo: usa Opción B
  • Si quieres control de Workspace de empresa: Opción B + service account + delegation

Si quieres, te dejo ahora mismo el checklist exacto de APIs a activar para Opción A o para Opción C.

deft dawnBOT
mighty anvil
#

laboratorio completo: usa Opción B

jagged martenBOT
#

Perfecto, entonces ve con Opción B.

Comando

gog auth add alexifra@gmail.com --services user --force-consent

Luego verifica

gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status

APIs que conviene dejar habilitadas para “laboratorio completo”

En tu proyecto de Google Cloud activa estas:

  • Gmail API
#
  • Google Calendar API
  • Google Chat API
  • Google Classroom API
  • Google Drive API
  • Google Docs API
  • Google Slides API
  • Google Sheets API
  • Google Tasks API
  • People API
  • Google Forms API
  • Apps Script API

Qué te va a abrir

Con --services user normalmente te llevas:

  • Gmail
  • Calendar
#
  • Chat
  • Classroom
  • Drive
  • Docs
  • Slides
  • Contacts / People
  • Tasks
  • Sheets
  • Forms
  • Apps Script

Lo que NO entra aún

Esto ya es otro nivel y requiere service account + domain-wide delegation:

  • Admin
  • Groups
  • Keep
#

Si quieres, te dejo en el siguiente mensaje un checklist limpio de APIs + pruebas mínimas para cada una, para que tu laboratorio quede redondo.

mighty anvil
#

corriendo este comendo de autenticacion nuevamente, revoca todo lo que ya tenemos ok y autenticado ?

jagged martenBOT
#

No, no te revoca todo lo que ya está OK.

Qué hace realmente

Si corres otra vez:

gog auth add alexifra@gmail.com --services user --force-consent

lo normal es que:

  • vuelva a pedir consentimiento
  • amplíe/actualice scopes
  • guarde un refresh token nuevo para esa cuenta/cliente

Pero no borra automáticamente todo lo anterior ni te deja “sin auth”.

#

Lo importante

  • No revoca en Google por sí solo
  • No rompe Gmail/Drive/Docs/Sheets/Tasks que ya validaste
  • simplemente intenta dejar esa cuenta con un set más amplio de permisos

Diferencia clave

  • gog auth add ...actualiza / amplía auth
  • gog auth remove alexifra@gmail.comborra el token local guardado
  • revocar desde tu cuenta Google → invalida el acceso de verdad

Mi recomendación

Como ya te funciona todo, puedes correrlo tranquilo si quieres ampliar a user.

Si quieres ir fino, haz esto después:

#
gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status

Así confirmas que el token nuevo quedó bien.

Si quieres, te digo también cuál es la forma más segura de ampliar scopes sin llevarte permisos innecesarios.

mighty anvil
#

lo que si me interesa sumar a todo esto es autorizacion full a Keep, que lo utilizo con Task

jagged martenBOT
#

Sí, pero aquí viene la trampa importante:

Keep no entra en el OAuth normal de usuario

En gog auth services, Keep sale como algo tipo:

  • USER = false
  • Workspace only
  • requiere service account + domain-wide delegation

O sea, no se suma con esto:

gog auth add alexifra@gmail.com --services user --force-consent

y tampoco con tu auth actual de alexifra@gmail.com si es una cuenta personal.

#

Para tener Keep “full” necesitas esto

  1. Google Workspace (dominio propio, no solo @gmail.com)
  2. Google Keep API habilitada
  3. service account en Google Cloud
  4. domain-wide delegation activada
  5. allowlist del scope https://www.googleapis.com/auth/keep en Admin Console
  6. configurar gog así:
gog auth service-account set tu@tu-dominio.com --key <service-account.json>

y luego probar:

gog keep list --account tu@tu-dominio.com
#

Si estás solo con alexifra@gmail.com

Entonces la respuesta corta es:

no, Keep full no lo vas a sumar con el mismo flujo OAuth de usuario.

Mi recomendación

  • Si quieres Keep de verdad, usa una cuenta Workspace de dominio
  • Si sigues en cuenta personal, quédate con:
    • Tasks
    • Docs
    • Sheets
    • Drive

que ya te quedaron finos

Si quieres, te dejo el paso a paso exacto para montar Keep con Workspace + service account.

mighty anvil
#

cuales son los servicios fundamentales a habilitar del Workspace de Google

jagged martenBOT
#

Si hablamos de fundamentales de verdad para un Workspace bien útil, yo los dividiría así:

1) Núcleo mínimo, los imprescindibles

Estos son los que casi siempre activaría primero:

  • Gmail API
  • Google Calendar API
  • Google Drive API
  • Google Docs API
  • Google Sheets API
  • Google Tasks API
  • People API

Con esos ya cubres:

  • correo
  • agenda
  • archivos
#
  • documentos
  • hojas
  • tareas
  • contactos/personas

2) Segunda capa, muy recomendables

Si quieres un workspace más potente:

  • Google Slides API
  • Google Forms API
  • Apps Script API
  • Google Chat API

Estos te dan:

  • presentaciones
  • formularios
  • automatización
#
  • mensajería interna

3) Nivel empresa / admin

Solo si vas a administrar el dominio o quieres poder serio de Workspace:

  • Admin SDK API
  • Cloud Identity API
  • Google Keep API
    (esta ya te dije que normalmente pide Workspace + service account + domain-wide delegation)

Mi recomendación práctica

Si quieres un setup base sólido:

activa estos 7 sí o sí:

Gmail
#
Calendar
Drive
Docs
Sheets
Tasks
People

Si quieres un setup “pro”:

añade además:

Slides
Forms
Apps Script
#
Chat

Si quieres “poder total de Workspace”:

añade también:

Admin SDK
Cloud Identity
Keep

pero ahí ya entras en territorio de service accounts y delegación de dominio.

Si quieres, te lo dejo en formato checklist exacto para Google Cloud Console, para ir activándolos uno por uno sin perderte.

mighty anvil
#

terminemos con esto Gmail
Calendar
Drive
Docs
Sheets
Tasks
People

jagged martenBOT
#

Perfecto, cerremos con ese paquete base.

APIs a habilitar en Google Cloud

Activa estas 7:

  • Gmail API
  • Google Calendar API
  • Google Drive API
  • Google Docs API
  • Google Sheets API
  • Google Tasks API
  • People API

Comando de auth recomendado

Como ya validaste casi todo, yo lo dejaría así:

#
gog auth add alexifra@gmail.com --services gmail,calendar,drive,docs,sheets,tasks,contacts,people --force-consent

Importante

Meto también contacts porque:

  • people solo cubre perfil / lookup básico
  • contacts es lo que te da acceso real a libreta de contactos

Lo que ya tienes básicamente validado

  • Gmail ✅
  • Drive ✅
  • Docs ✅
  • Sheets ✅
  • Tasks ✅

Lo que te faltaría verificar de este paquete

#

Calendar

GOG_ACCOUNT="alexifra@gmail.com" gog calendar calendars --max 5

Contacts / People

GOG_ACCOUNT="alexifra@gmail.com" gog contacts list --max 10

Estado general

gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status

Mi cierre práctico

#

Si haces esto:

gog auth add alexifra@gmail.com --services gmail,calendar,drive,docs,sheets,tasks,contacts,people --force-consent

te queda un Google Workspace base muy sólido para productividad real.

Si quieres, el siguiente mensaje te lo dejo en formato checklist final de 5 comandos para cerrar Calendar + Contacts y darlo por terminado.

mighty anvil
#

esto salio en el explorador.........You're connected
gog is now authorized to access Google Workspace

jagged martenBOT
#

Sí, eso es justo la señal buena ✅

Significa que gog sí quedó autorizado con Google correctamente.

Traducción corta

  • el flujo OAuth terminó bien
  • Google aceptó el consentimiento
  • gog ya tiene acceso para los servicios que pediste

Para confirmarlo por terminal

Corre esto:

gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog calendar calendars --max 5
#
GOG_ACCOUNT="alexifra@gmail.com" gog contacts list --max 10

Si eso responde bien, entonces ya dejas cerrado el pack base:

  • Gmail ✅
  • Calendar ✅
  • Drive ✅
  • Docs ✅
  • Sheets ✅
  • Tasks ✅
  • Contacts / People ✅

Si quieres, pega esa salida y te doy el cierre final para marcar solución.

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ gog auth list --check
GOG_ACCOUNT="alexifra@gmail.com" gog auth status
GOG_ACCOUNT="alexifra@gmail.com" gog calendar calendars --max 5
GOG_ACCOUNT="alexifra@gmail.com" gog contacts list --max 10
alexifra@gmail.com default calendar,contacts,docs,drive,gmail,people,sheets,tasks 2026-04-20T22:38:24Z true oauth
config_path /home/alexifra/.config/gogcli/config.json
config_exists false
keyring_backend file
keyring_backend_source env
account alexifra@gmail.com
client default
credentials_path /home/alexifra/.config/gogcli/credentials.json
credentials_exists true
auth_preferred oauth
service_account_configured false
ID NAME ROLE
alexifra@gmail.com alexifra@gmail.com owner
family04214302844635559960@group.calendar.google.com Familia owner
classroom105106335928879638257@group.calendar.google.com SANTUARIO HOGAR 2026 LAF ARQ 2026 reader
Google API error (403 accessNotConfigured): People API has not been used in project 584041476396 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/people.googleapis.com/overview?project=584041476396 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

jagged martenBOT
#

Perfecto, ya casi queda redondo.

Resultado

  • auth token
  • Calendar
  • Gmail / Drive / Docs / Sheets / Tasks
  • Contacts / People ❌ pero no por auth, sino porque falta habilitar la API

El error es este:

People API ... is disabled

Qué significa

Tu autorización está bien.
Lo único que falta es activar People API en el proyecto de Google Cloud que usa ese cliente OAuth.

#
  • Gmail ✅
  • Calendar ✅
  • Drive ✅
  • Docs ✅
  • Sheets ✅
  • Tasks ✅
  • People / Contacts ⏳ solo pendiente de habilitar People API

En cuanto actives esa API, queda 100% completo.
Si luego te funciona gog contacts list, ya puedes marcar la solución 🎉

mighty anvil
#

alexifra@LAPTOP-VIVOBOOK-ALEXIFRA:~$ GOG_ACCOUNT="alexifra@gmail.com" gog contacts list --max 1 Next page: --page GiIKHggKagwIqteazwYQ2I6zpQJyDAih15rPBhCw4fbRAhAC
RESOURCE NAME EMAIL PHONE
people/c8354987017742912051
people/c699276175525275488 Vicente Nuñez Kmeli 🚩 Vecino Latino +595983929883
people/c2859949558606583288 Sergio Pizurno Szarán +595983704880
people/c7633757572307939153 Ivan +56993151595
people/c9179436035555409639 Jorge Pistilli +595971286652
people/c7848472724115758095 Venancio Pino +595981242109
people/c7681650862040415749 Sauna Caballeros - Club Centenario +595981303159
people/c3577019620221375739 Rita Supervisora Latino +595982298913
people/c6044348342492558774 Dahia🫶🏼 Latino +595972950161
people/c8127319928114920233 Enrique Kike Dami +595981469088

jagged martenBOT
#

Sí, con eso ya quedó completo

gog contacts list respondió bien, así que People / Contacts también está funcionando.

Veredicto final

Tu pack base quedó verificado de punta a punta:

  • Gmail
  • Calendar
  • Drive
  • Docs
  • Sheets
  • Tasks
  • People / Contacts

O sea, la autenticación y el acceso real para ese núcleo de Google Workspace quedaron bien configurados.

#

Y ojo, no pegues más contactos reales en público, ahí ya salieron datos sensibles.

Glad that helped! 🎉
Si esto ya quedó resuelto, por favor marca la solución para que quede indexada en Answer Overflow:

click derecho en el mensaje de solución → Apps✅ Mark Solution

mighty anvil
#

como configuramos Google Keep ahora ?

jagged martenBOT
#

Google Keep es el único que va por otra ruta.

Lo primero

Si estás solo con alexifra@gmail.com personal, Keep no lo vas a configurar full con ese mismo OAuth.

Para Google Keep en gog necesitas:

  • Google Workspace con dominio propio
  • Google Keep API habilitada
  • service account
  • domain-wide delegation

Si sí tienes Workspace, el paso a paso es este

1) Habilita la API

En Google Cloud, activa:

#
  • Google Keep API

2) Crea una service account

En tu proyecto de Google Cloud:

  • IAM & Admin → Service Accounts
  • Create service account
  • entra a la service account
  • activa Domain-wide delegation
  • crea una key JSON y descárgala

3) Autoriza el scope en Admin Console

En Google Workspace Admin:

  • Security
  • API controls
  • Domain-wide delegation
#
  • Add new

Ahí pones:

  • Client ID: el de la service account
  • OAuth scope:
https://www.googleapis.com/auth/keep

4) Configura gog

Luego en terminal:

gog auth service-account set tu@tu-dominio.com --key ~/Downloads/service-account.json
#

5) Prueba

gog keep list --account tu@tu-dominio.com
gog keep create --title "Todo" --item "Milk" --item "Eggs" --account tu@tu-dominio.com
gog keep delete <noteId> --account tu@tu-dominio.com --force

Resumen corto

  • Cuenta personal Gmail → Keep full: no
  • Workspace + service account + delegation → Keep full:

Si quieres, te preparo ahora mismo el checklist exacto de 6 pasos para montarlo sin perderte.

mighty anvil
#

Cuentas de servicio
Cuentas de servicio del proyecto “My Project 10877 Notas”
Una cuenta de servicio representa una identidad de servicio de Google Cloud, como el código en ejecución en las VM de Compute Engine, las apps de App Engine o los sistemas que se ejecutan fuera de Google. Obtén más información sobre las cuentas de servicio.

Las políticas de la organización se pueden usar para asegurar las cuentas de servicio y bloquear sus características riesgosas, como el otorgamiento automático de IAM, la creación y carga de claves, o la creación misma de cuentas de servicio. Obtén más información sobre las políticas de la organización para cuentas de servicio.

Filtro
Correo electrónico
Estado
Nombre
Descripción
ID de clave
Fecha de creación de la clave
ID de cliente de OAuth 2
Acciones
openclaw-bridge@my-project-10877-notas.iam.gserviceaccount.com
Habilitado
openclaw-bridge Acceso servicios Google Worspace a Open Claw
add06407fe2cc6c2ba6f502355f566ee1f825bde
8 abr 2026 Para ID de clave, add06407fe2cc6c2ba6f502355f566ee1f825bde
106993411035821033609

jagged martenBOT
#

Perfecto, eso ya es justo lo que necesitabas.
La service account ya existe.

La pieza importante de lo que pegaste es esta:

  • service account: openclaw-bridge@my-project-10877-notas.iam.gserviceaccount.com
  • OAuth 2 Client ID: 106993411035821033609

Ahora te faltan 4 pasos

1) Confirmar que tenga Domain-wide delegation

En la service account, entra a detalles y verifica que esté activado Google Workspace domain-wide delegation.

Si no está activado, hay que habilitarlo ahí.


#

2) Autorizarla en Google Workspace Admin

En Admin Console:

  • Security
  • API controls
  • Domain-wide delegation
  • Add new

Pon:

  • Client ID:
    106993411035821033609

  • OAuth scopes:

    https://www.googleapis.com/auth/keep
    
#

Si luego quieres reutilizar esta misma service account para más cosas, puedes añadir más scopes separados por comas.


3) Tener la key JSON local

Necesitas el archivo JSON de esa service account en tu máquina.

No lo pegues aquí.

Si ya lo descargaste, perfecto.
Si no, crea/descarga una key JSON para esa service account.


4) Configurar gog

Luego en terminal:

#
gog auth service-account set TU_USUARIO_WORKSPACE@TU_DOMINIO.com --key /ruta/a/service-account.json

Ojo importante

Ahí no pondría alexifra@gmail.com si es cuenta personal.
Tienes que poner el usuario de tu dominio Workspace que quieres impersonar.


Prueba final

gog --account TU_USUARIO_WORKSPACE@TU_DOMINIO.com auth status
gog keep list --account TU_USUARIO_WORKSPACE@TU_DOMINIO.com

Si eso responde, Keep ya quedó montado.

#

Resumen

Ya tienes:

  • service account ✅
  • client ID ✅

Te falta:

  • domain-wide delegation ✅/pendiente
  • allowlist del scope keep en Admin ✅/pendiente
  • key JSON local ✅/pendiente
  • gog auth service-account set ... ✅/pendiente

Si quieres, te doy el texto exacto que debes pegar en Domain-wide delegation y el comando exacto final con tu correo de Workspace.

mighty anvil
#

openclaw-bridge
Detalles
Permisos
Claves
Métricas
Registros
Principales con acceso
Detalles de la cuenta de servicio
Nombre
openclaw-bridge
Descripción
Acceso servicios Google Worspace a Open Claw
Correo electrónico

openclaw-bridge@my-project-10877-notas.iam.gserviceaccount.com

ID único

106993411035821033609

Estado de la cuenta de servicio
Inhabilitar la cuenta te permite conservar tus políticas sin necesidad de borrarla.

Habilitada

jagged martenBOT
#

Perfecto, esa parte está bien:

  • la service account existe
  • está habilitada
  • y el ID que vas a usar como referencia es:
106993411035821033609

Lo que todavía no veo en esa pantalla

Ahí aún no aparece si tiene activada la delegación en todo el dominio.

Eso es lo siguiente a comprobar.

Siguiente paso exacto

En esa misma service account:

#
  1. entra a Editar
  2. busca algo como:
    • Enable Google Workspace Domain-wide Delegation
    • o Delegación en todo el dominio
  3. si no está activado, actívalo

Después: Admin Console

Cuando eso esté activo, ve a:

  • Security
  • API controls
  • Domain-wide delegation
  • Add new

Y pega:

#

Client ID

106993411035821033609

OAuth scopes

https://www.googleapis.com/auth/keep

Luego en tu máquina

Con el JSON key descargado:

#
gog auth service-account set TU_USUARIO_WORKSPACE@TU_DOMINIO.com --key /ruta/a/service-account.json
gog keep list --account TU_USUARIO_WORKSPACE@TU_DOMINIO.com

Ojo

  • usa un correo de tu dominio Workspace
  • no alexifra@gmail.com si eso es cuenta personal
  • no pegues aquí el JSON key

Si quieres, el siguiente paso lo hacemos juntos:
1) confirmar si la delegación está activada
o
2) pegar el Client ID + scope en Admin Console.

deft dawnBOT
mighty anvil
#

no encuentro esta parte......busca algo como:
Enable Google Workspace Domain-wide Delegation
o Delegación en todo el dominio

jagged martenBOT
#

Sí, mejor ruta: no lo busques más ahí.

Te corrijo la dirección, porque en la UI actual de Google muchas veces no hace falta encontrar ese switch en la service account si ya tienes esto:

ID único / Client ID: 106993411035821033609

Haz esto directamente

Ve a Google Admin Console con un super admin:

Security → Access and data control → API controls → Manage Domain Wide Delegation

Luego:

  1. Add new
  2. Client ID:
#
   106993411035821033609
  1. OAuth scopes:
    https://www.googleapis.com/auth/keep
    
  2. Authorize

Después

En tu máquina:

gog auth service-account set TU_USUARIO_WORKSPACE@TU_DOMINIO.com --key /ruta/a/service-account.json
gog keep list --account TU_USUARIO_WORKSPACE@TU_DOMINIO.com
#

Si te da error al autorizar el Client ID

Ahí sí te diría que la service account no quedó bien preparada y tocaría recrearla con la opción adecuada.

Pero primero prueba en Admin Console, porque con lo que mostraste ya deberías poder avanzar.

Si quieres, te dejo el texto exacto listo para copiar y pegar en Client ID y OAuth scopes.

mighty anvil
#

donde lo encuentro ? Ve a Google Admin Console

jagged martenBOT
#

Está en:

https://admin.google.com

Pero ojo

Ese panel solo existe si tienes Google Workspace y permisos de administrador.

Si entras con una cuenta de dominio Workspace

Te debería dejar pasar y luego navegas a:

Security → Access and data control → API controls → Manage Domain Wide Delegation

Si entras con alexifra@gmail.com personal

Lo normal es que:

  • no tengas Admin Console
  • o no veas esas opciones
#

En ese caso, ahí se confirma que Keep full con service account no lo vas a poder cerrar desde una cuenta personal.

Prueba rápida

Abre:

https://admin.google.com

  • si entra a panel admin, seguimos
  • si no entra o no tienes permisos, ahí está el bloqueo

Si quieres, dime qué te muestra exactamente al abrir admin.google.com y te digo en cuál de los dos casos estás.

mighty anvil
#

ok

jagged martenBOT
#

Dale.

Cuando abras admin.google.com, dime qué pasa:

  • entra al panel admin, o
  • te dice que no tienes acceso / no eres administrador

Con eso te digo enseguida si Keep es viable en tu caso o si queda descartado con esa cuenta.

mighty anvil
#

ok, descartemos por ahora

jagged martenBOT
#

Sí, me parece bien.

Entonces lo dejamos así:

  • Gmail
  • Calendar
  • Drive
  • Docs
  • Sheets
  • Tasks
  • People / Contacts
  • Keep ⏸️ descartado por ahora, porque ya entra en terreno Workspace admin / service account

Para lo que querías al principio, ya quedaste muy bien armado.

Si más adelante montas un dominio Workspace, retomamos Keep desde ahí.

#

Y si esto ya quedó resuelto, marca la solución para que quede indexada en Answer Overflow 🎉

mighty anvil
#

como marcamos la solucion ?