Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

136
Visualizações
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
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda