首页 > 解决方案 > 如何以编程方式将访客与会者添加到保存时的 GSuite 日历事件

问题描述

我正在构建一个 GSuite 日历扩展。

我的扩展程序将自定义信息添加到新事件的描述中,并且需要系统地添加访客电子邮件,例如 test@mydomain.com。

该扩展程序具有内容脚本,可在 Google 日历添加事件页面中注入 HTML 和 javascript。此 HTML 在添加事件页面上创建一个按钮,当用户单击此按钮时,javascript 会将自定义信息添加到描述中。

这是添加事件页面中添加按钮的 HTML。

html() {
  return `<div>
            <strong>
              <a href='#add-description' id="add-description-btn" data-toggle="modal" data-backdrop='static' data-keyboard='false'>Add Custom Details</a>
            </strong>
          </div>`;
}

这是在添加事件页面中注入 HTML 和 javascript 的函数。

inject(eventType) {
  const eventDetails = $('#tabEventDetails');
  eventDetails.find('div:first').after(html(eventType));
  // More javascript
}

这是在描述中添加自定义详细信息的功能。

addDescription(content) {
  $('[aria-label="Description"]').html(content);
}

我可以注入描述,但是如何在没有任何用户干预的情况下以编程方式添加来宾?

有什么方法可以使用 javascript 添加来宾电子邮件吗?或使用后保存跳跳虎(如果有)?

任何指针?

标签: javascriptgoogle-chrome-extensiongoogle-calendar-apigoogle-workspace

解决方案


添加到数组“参加者”对象,例如 {'email': 'lpage@example.com'}:

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': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
  'attendees': [
    {'email': 'lpage@example.com'},
    {'email': 'sbrin@example.com'}
  ],
  'reminders': {
    'useDefault': false,
    'overrides': [
      {'method': 'email', 'minutes': 24 * 60},
      {'method': 'popup', 'minutes': 10}
    ]
  }
};

var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': event
});

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});

推荐阅读