Я использую пользовательскую учетную запись службы (используя параметр --service-account
в команде deploy). Для этой учетной записи службы включено делегирование по всему домену, и она установлена в панели администратора G Apps.
Я попробовал этот код:
app.get('/test', async (req, res) => {
const auth = new google.auth.GoogleAuth()
const gmailClient = google.gmail({ version: 'v1' })
const { data } = await gmailClient.users.labels.list({ auth, userId: 'user@domain.com' })
return res.json(data).end()
})
Это работает, если я запускаю его на своем компьютере (имея переменная GOOGLE_APPLICATION_CREDENTIALS
env установлена на путь к той же учетной записи службы, которая назначена службе Cloud Run), но когда она запускается в Cloud Run, я получаю следующий ответ:
{
"code" : 400,
"errors" : [ {
"domain" : "global",
"message" : "Bad Request",
"reason" : "failedPrecondition"
} ],
"message" : "Bad Request"
}
Я видел это решение для той же проблемы, но оно для Python, и я не знаю, как повторить это поведение с библиотекой Node.