Я пытаюсь получить доступ к api реселлера Google с помощью библиотеки nodejs, в которой очень много ..., я имею в виду нечеткую документацию. Я пробовал следовать примеру здесь , но не смог выполнить шаг 3 с этой ошибкой:
code: 403,
errors: [
{
domain: 'global',
reason: 'insufficientPermissions',
message: 'Authenticated user is not authorized to perform this action.'
}
]
Моя конфигурация выглядит так:
const OAUTH2_SCOPES = [
"https://www.googleapis.com/auth/admin.directory.user",
"https://www.googleapis.com/auth/apps.order",
"https://www.googleapis.com/auth/siteverification",
"https://www.googleapis.com/auth/cloud-platform",
];
const authJWT = new google.auth.JWT({
keyFile: JSON_PRIVATE_KEY_FILE,
scopes: OAUTH2_SCOPES,
subject: RESELLER_ADMIN_USER,
email: "gsuite-reseller@some-cool-name-because-why-not.iam.gserviceaccount.com",
});
Использование basi c google fu, я нашел эту ветку , в которой говорилось, что моя проблема связана с олицетворением. Таким образом, я обменял адрес электронной почты в свойстве subject
на адрес электронной почты моей учетной записи, в котором указаны права владельца. Я также дал права владельца учетной записи службы, потому что на тот момент я был довольно невежественным. К сожалению, это только изменило сообщение об ошибке на:
status: 401,
statusText: 'Unauthorized'
Кто-нибудь знает, что пошло не так? 401 предполагает, что отсутствуют учетные данные. Придется ли мне также указывать свои личные учетные данные электронной почты в дополнение к учетным данным учетной записи службы? Если да, то где? Я не нашел на объекте google.auth.JWT.options
ничего многообещающего.