前提・実現したいこと
チーム内に共有しているGoogleカレンダーを監視する為に
Googe apps scriptのカレンダー変更時のトリガーとGoogle CalendarAPIを組み合わせて
イベントの作成、更新、削除時に通知が飛ぶBotを作成しています。
発生している問題
Google Calendar APIのEvents.getで得られるアカウント情報はイベントの所有者と作成者の2つだけです。
(CalendarAPI/Events)
その為アカウントAがイベントを作成し、アカウントBが編集した場合にBの情報を取得する手段が現在ありません。
API、他のサービス含め、共有してるGoogleカレンダーでイベントを更新したアカウントの情報を取得する方法がありましたらご教授いただけると幸いです。
該当のソースコード
GoogleAppsScript
1 2function doMain(e) { 3 Logger.log(e); 4 var items = onCalendarEdit(e.calendarId); 5 6 for (var i = 0; i < items.length; i++) { 7 //idからEventを取得 8 var Event = Calendar.Events.get(e.calendarId, items[i].id); 9 EventProcessing(Event); 10 } 11} 12 13 14//カレンダー編集時に自動的に起動するプログラム 15function onCalendarEdit(CalId) { 16 var calendarId = CalId //同期させたいカレンダーIDを入れる 17 var summary = Calendar.Calendars.get(calendarId).summary 18 var properties = PropertiesService.getScriptProperties(); 19 var nextSyncToken = properties.getProperty("syncToken_" + summary); 20 var optionalArgs = { 21 syncToken: nextSyncToken 22 }; 23 var events = Calendar.Events.list(calendarId, optionalArgs); 24 Logger.log(JSON.stringify(events)); 25 var nextSyncToken = events["nextSyncToken"]; 26 properties.setProperty("syncToken_" + summary, nextSyncToken); 27 return events.items; 28} 29 30function EventProcessing(Event) { 31/*整形して外部に通知を飛ばす処理 32*/ 33}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。