Я пытаюсь создать 2 календарных события для 2 календарей с помощью клиентской библиотеки API Google Node.js в одной функции.Я использую 2 отдельных объекта аутентификации, которые я получаю следующим образом:
var auth1 = await google.auth.getClient({ credentials: config.account1Creds, scopes: ["https://www.googleapis.com/auth/calendar.events"] });
var auth2 = await google.auth.getClient({ credentials: config.account2Creds, scopes: ["https://www.googleapis.com/auth/calendar.events"] });
Я могу создать событие в первом точном календаре, но когда я создаю событие во втором календаре, я получаю404 Не найдено обратно с сервера API Календаря Google.
Если я закомментирую первую строку var auth1 = await google.auth...
и создаю событие только во 2-м календаре, все в порядке, и событие создается успешно.
Это выглядит так, как будто первый раз getClient
вызывается, он устанавливает глобальный объект аутентификации, который используется для всех оставшихся запросов API, и его нельзя заменить, но это всего лишь догадка, которую я имею, и я нена самом деле знаю.
У кого-нибудь есть идеи, почему это происходит?
РЕДАКТИРОВАТЬ:
GetGoogleCalendarService: async function(credentials)
{
var auth = await google.auth.getClient({ credentials: credentials, scopes: ["https://www.googleapis.com/auth/calendar.events"] });
return google.calendar({ version: "v3", auth: auth });
},
InsertCalendarEvent: function(calendar, entry, callback)
{
calendar.events.insert(entry, callback);
},
SendInvitesToEvent: async function (request, response)
{
//build the calendar event
var entry = {
...
}
//insert into operations calendar
var opsCal = await Events.GetGoogleCalendarService(config.GetConfig().OpsCalendarCredentials);
Events.InsertCalendarEvent(mainCal, entry);
//insert into public calendar
var publicCal = await Events.GetGoogleCalendarService(config.GetConfig().PublicCalendarCredentials);
Events.InsertCalendarEvent(publicCal, entry, async function(err, event)
{
//err: 404 Not Found
...
}
}