Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

138
Views
El código API de Google Calendar no se autentica en Cloud Run

Escribí una llamada a la API de Calendario simple usando el cliente oficial de NodeJS: https://github.com/googleapis/google-api-nodejs-client#service-account-credentials

Funciona bien en mi máquina local, usando una Cuenta de servicio configurada con Delegación en todo el dominio para crear el evento e invitar a una lista de asistentes en mi nombre.

Configuré la ubicación de las credenciales usando GOOGLE_APPLICATION_CREDENTIALS env var en mi máquina local, pero no configuré esto en el servicio Google Cloud Run porque supuestamente es automático ya que asocié la cuenta de servicio. Esta suposición parece cierta porque puedo llamar a las funciones de GoogleAuth y recuperar el nombre de cuenta de servicio esperado.

Sin embargo, una vez que intento ejecutarlo en Cloud Run, arroja el error:

Error: las cuentas de servicio no pueden invitar asistentes sin la delegación de autoridad en todo el dominio.

Al principio pensé que se trataba de un problema con las credenciales predeterminadas que de alguna manera cargaban la cuenta de servicio incorrecta.

Agregué el registro directamente antes de que se llame al evento para ver qué cuenta está usando:

 const auth = new googleClient.auth.GoogleAuth({ clientOptions: { subject: eventOwner }, scopes: calendarScopes, }) const serviceAcctName = (await auth.getCredentials())?.client_email googleClient.options({ auth: auth }) logger.info(`${serviceAcctName} acting as ${eventOwner}, using calendar ${calendarId}`) const calendar = googleClient.calendar('v3') const response = await calendar.events.insert(event)

El resultado del registro es exactamente como se esperaba, con la cuenta de servicio correcta actuando como el usuario correcto en la identificación de calendario correcta.

Verifiqué dos veces que la cuenta tiene delegación de autoridad en todo el dominio y los alcances adecuados, y funciona bien en mi máquina local, por lo que lo único que se me ocurre es algo sobre la función de la biblioteca de obtener credenciales predeterminadas en un El entorno de Google está sobrescribiendo mi llamada googleClient.options(). Pero todavía estoy confundido porque las funciones de GoogleAuth aún brindan la información de la cuenta de servicio esperada cuando toma el 'predeterminado'.

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!