Как насчет этой модификации?
Я думаю, что в вашем скрипте конечная точка и / или область действия могут быть неверными.
Шаблон 1:
В этом шаблоне , ваша конечная точка https://dns.googleapis.com/dns/v1/projects/${keys.project_id}
используется.
Модифицированный скрипт:
const { JWT } = require("google-auth-library");
const keys = require("###"); // Please set the filename of credential file of the service account.
async function main() {
const calendarId = "ip15lduoirvpitbgc4ppm777ag@group.calendar.google.com";
const client = new JWT(keys.client_email, null, keys.private_key, [
'https://www.googleapis.com/auth/cloud-platform' // <--- Modified
]);
const url = `https://dns.googleapis.com/dns/v1/projects/${keys.project_id}`;
const res = await client.request({ url });
console.log(res.data);
}
main().catch(console.error);
- В этом случае необходимо включить Cloud DNS API на консоли API. И это необходимо для оплаты. Пожалуйста, будьте осторожны с этим.
- Я думал, что причиной вашего сообщения об ошибке
Insufficient Permission
может быть следующее.
Pattern 2:
В этом шаблоне в качестве примера ситуации список событий извлекается из календаря, который используется совместно с учетной записью службы. Если календарь можно использовать с учетной записью службы, возвращается список событий. Таким образом, я думаю, что вы можете подтвердить, работает ли скрипт.
Модифицированный скрипт:
const { JWT } = require("google-auth-library");
const keys = require("###"); // Please set the filename of credential file of the service account.
async function main() {
const calendarId = "###"; // Please set the calendar ID.
const client = new JWT(keys.client_email, null, keys.private_key, [
"https://www.googleapis.com/auth/calendar"
]);
const url = `https://www.googleapis.com/calendar/v3/calendars/${calendarId}/events`; // <--- Modified
const res = await client.request({ url });
console.log(res.data);
}
main().catch(console.error);
Примечание:
- Этот модифицированный скрипт предполагает, что вы используя
google-auth-library-nodejs
последней версии.
Ссылка:
Если я неправильно понял ваш вопрос, и это не то направление, в котором вы хотите, прошу прощения.