Вставьте событие в календарь Google, используя учетную запись службы с Nodejs - PullRequest
1 голос
/ 09 февраля 2020

Я не могу вставить событие, используя Nodejs с учетной записью службы. Учетная запись службы электронной почты уже добавлена ​​в учетную запись с разрешением вносить изменения в событие. Мой nodejs код работает в облачных функциях Google. Вот мой код:

const {
  google
} = require('googleapis');


var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2020-02-10T13:00:00-05:00'
  },
  'end': {
    'dateTime': '2020-02-10T15:00:00-05:00'
  },
  'attendees': [{
    'email': 'Emailh@domain.com'
  }],
  'reminders': {
    'useDefault': false,
    'overrides': [{
        'method': 'email',
        'minutes': 24 * 60
      },
      {
        'method': 'popup',
        'minutes': 10
      },
    ],
  },
};

exports.helloWorld = (req, res) => {
  google.auth.getClient({
    scopes: 'https://www.googleapis.com/auth/calendar',
  }).then(auth => {
    const calendar = google.calendar({
      version: 'v3',
      auth
    });
    calendar.events.insert({
      auth: auth,
      calendarId: 'MyCalendarID',
      resources: event,
    }, function(err, event) {
      if (err) {
        console.log('There was an error contacting the Calendar service: ' + err);
        return;
      }
      console.log('Event created: %s', event.htmlLink);
    });
  })

};

тот же код работает нормально, когда я использую функция читать. Любая идея?

1 Ответ

1 голос
/ 10 февраля 2020

Это известная ошибка

Существует проблема при добавлении участников на мероприятие с учетной записью службы.

Текущий обходной путь - выдать себя за пользователя, использующего G Suite Делегирование по всему домену . Если вы это сделаете, вы сможете создавать события с участниками.

Другой вариант - удалить участников из запроса на создание события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...