получить Google календарь событий - PullRequest
0 голосов
/ 04 сентября 2018

Мне интересно, можно ли как-нибудь получить события моего коллеги по календарю? например, у меня есть эта функция, где я получаю только свои синие забронированные встречи и тому подобное, но мне интересно, как я могу получить из календаря коллег? Я могу добавить календарь моего сотрудника в свой, но он не получает его, потому что он другого цвета или что-то еще ... вы знаете, календари на Gmail

Код:

const timeMin = startOfMonth(new Date(2018, 7, 01));
const timeMax = endOfMonth(new Date(2018, 7, 31));

function getEvents(req, res) {
  const calendar = google.calendar({ version: "v3", auth: oauth2Client });
  return new Promise((resolve, reject) => {
    calendar.events.list(
      {
        auth: oauth2Client,
        calendarId: "primary",
        timeMin: timeMin.toISOString(),
        timeMax: timeMax.toISOString(),
        maxResults: 50,
        singleEvents: true,
        orderBy: "startTime"
      },
      (err, res) => {
        if (err) return reject(err);
        return resolve(res);
      }
    );
  })
    .then(response => {
      const { items } = response.data;
      //Log out each event> items.forEach(item => console.log(item));
      res.status(200).send(items);
    })
    .catch(console.log);
}

Итак, как я могу получать разные события в Гкал или все в одном, или какое здесь решение? Я использую oauth2client для авторизации аккаунта, если это актуально.

1 Ответ

0 голосов
/ 04 сентября 2018

Когда вы запустите этот код, вы получите доступ к пользователю, который аутентифицирует его данные. Если вы хотите получить доступ к различным учетным записям, то каждый пользователь должен аутентифицировать приложение. Если вы хотите получить доступ одновременно, это, вероятно, будет невозможно при использовании JavaScript.

Обычно с серверными языками программирования пользователь может аутентифицировать его и сохранять токен обновления, после чего у вас будет доступ к его данным, когда они находятся в автономном режиме. Тогда вы можете технически получить доступ к данным нескольких пользователей одновременно.

Невозможно получить токен обновления обратно при входе в систему на слайде клиента, как в JavaScript.

Обновление:

При повторном запросе календаря вам необходимо указать, какой календарь вы хотели бы видеть, мы покупаем с указанием идентификатора календаря, который вы делаете

calendarId: "primary",

Какой является основным календарем текущего аутентифицированного пользователя. Если у вас есть доступ к другим календарям, вам нужно будет изменить этот код на идентификатор календаря другого пользователя. Вы можете найти идентификатор календаря на веб-сайте Google Calendar или сделать calendarlist.list , который должен показать вам, к каким календарям имеет доступ текущий пользователь.

...