Я пытаюсь получить доступ к 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",
});
Используя базовый google fu, я нашел этот thread, из чего следует, что моя проблема связана с олицетворением. Поэтому я обменялся адресом электронной почты в свойстве subject
с адресом электронной почты моей учетной записи, для которой указаны права владельца. Я также дал права владельца служебной учетной записи, потому что в этот момент я совершенно невежественен. К сожалению, это только изменило сообщение об ошибке на:
status: 401,
statusText: 'Unauthorized'
Кто-нибудь знает, что пошло не так? 401 указывает на отсутствие учетных данных. Должен ли я также указать свои личные учетные данные электронной почты в дополнение к учетным записям службы? Если да, то где? Я не нашел ничего многообещающего в объекте google.auth.JWT.options
.
OAUTH2_SCOPES
. Я добавил широкие области домена. В моем коде сейчас не так много всего. Я только пытаюсь вызвать API черезgoogle.reseller({ version: "v1", auth: authJWT });
. - person Gh05d   schedule 13.07.2020