В соответствии с рекомендацией в примере по умолчанию я пытаюсь получить доступ к api каталога для домена, для которого я создал учетную запись службы.Вот код, с которым я пытаюсь соединиться:
import { google } from 'googleapis'
const authClient = await google.auth.getClient({
scopes: ['https://www.googleapis.com/auth/admin.directory.user.readonly']
})
const service = google.admin('directory_v1')
console.log(
await service.users.list({
auth: authClient,
domain: <redacted>
})
)
Однако, когда я пытаюсь соединиться, я получаю сообщение об ошибке Error: Not Authorized to access this resource/api
.Если я удалю файл creds.json
в ~/.google
, ошибка изменится на сообщение о невозможности найти файл учетных данных.Кроме того, я могу получить доступ к корзине, используя тот же файл, так что я почти уверен, что моя локальная среда настроена правильно, с точки зрения аутентификации.Я также работал в течение последних нескольких дней с кем-то из команды поддержки G Suite API, который уверяет меня, что все настроено правильно в моем домене.
После просмотра онлайн, кажется, что яотсутствует попытка олицетворения учетной записи администратора при попытке подключения к моей учетной записи службы.В Интернете я нашел несколько примеров того, как сделать это с помощью стратегии аутентификации JWT, но я бы хотел продолжить использовать клиент аутентификации по умолчанию, чтобы абстрагироваться от деталей реализации.Это возможно?Если так, что я должен изменить?Я попытался установить subject
и delegationEmail
в обоих вызовах (getClient
и list
).
Любая помощь будет принята с благодарностью.