Как настроить авторизацию учетной записи службы Google в Node.js с помощью ключевого файла JSON?

#google-api-nodejs-client

#google-api-nodejs-client

Вопрос:

Пытаюсь использовать поток OAuth между серверами, определенный здесь:https://developers.google.com/identity/protocols/OAuth2ServiceAccount

Поскольку я работаю из локальной среды разработки, я создал учетную запись службы в GCP и загрузил файл JSON с закрытым ключом, но не могу найти ни одного Node.js примеры кода о том, как: 1) загрузить файл json 2) установить делегированные учетные данные (для авторизации в домене G Suite)

Места, которые я просмотрел (помимо stackoverflow), — это git wiki Google для node.js клиентская библиотека, в которой говорится об аутентификации между серверами, но, похоже, предполагается, что вы работаете из appengine или Google Cloud и вам не нужно загружать файл ключа:https://github.com/googleapis/google-api-nodejs-client#service-to-service-authentication

В API отчетов о действиях Admin SDK есть пример узла, но он использует веб-поток, предполагающий присутствие пользователя:https://developers.google.com/admin-sdk/reports/v1/quickstart/nodejs

Скрытый глубоко в Node.js в примерах используется Directory API, который, похоже, принимает ключевой файл в качестве входных данных, но когда я пытаюсь запустить локально, он говорит, что getClient не является конструктором, и все же в этом примере не показано, как настроить пользователя G Suite admin для контекста (что обычно происходит, когда токен обновления и токен доступа загружаются в приложение): https://github.com/googleapis/google-api-nodejs-client/blob/master/samples/directory_v1/group-delete.js

Итак … у кого-нибудь есть пример этого? Я действительно не хочу переключаться на среду выполнения Python, но Google, похоже, пропустил важные примеры по этой теме.