【发布时间】:2021-03-04 16:57:18
【问题描述】:
我一直在从事一个从谷歌日历收集日历事件并显示它的项目。 该过程完成的是有谷歌登录和退出按钮。 不知道怎么走!
【问题讨论】:
-
如果您觉得下面的答案对您有用,请随时接受并投票赞成
标签: reactjs google-api google-api-java-client googlesigninapi
我一直在从事一个从谷歌日历收集日历事件并显示它的项目。 该过程完成的是有谷歌登录和退出按钮。 不知道怎么走!
【问题讨论】:
标签: reactjs google-api google-api-java-client googlesigninapi
请参阅下面使用 Apps 脚本从 Google 日历获取事件的函数。很抱歉没有使用 ReactJS,但我仍然希望这可以帮助你,因为逻辑仍然相同。
function getCalendarEvents() {
var spreadSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var calID = CalendarApp.getCalendarById("c_jetel4kln5s4a9ola0h67jro6g@group.calendar.google.com"); //You can get the calendar ID through right clicking your Calendar->Settings and sharing->Integrate Calendar->Calendar ID
var calEvents = calID.getEvents(new Date("11/01/2020 12:00 AM"), new Date("11/30/2020 11:59 PM"));
var lastRowEvent = spreadSheet.getLastRow();
spreadSheet.getRange(2, 1,lastRowEvent-1,5); //For this line of code, it deletes the content you last had to make the row and column of your spreadsheet available for new added events(if ever you deleted some).
//Loop through the events you have in your Google Calendar
for(var i = 0; i<calEvents.length;i++) {
var titleEvents = calEvents[i].getTitle();
var startDate = calEvents[i].getStartTime();
var endDate = calEvents[i].getEndTime()
var location = calEvents[i].getLocation();
var description = calEvents[i].getDescription();
//having i+2 so you can go through the second row without overlapping the headers per column
spreadSheet.getRange(i+2, 1).setValue(titleEvents);
spreadSheet.getRange(i+2, 2).setValue(startDate);
spreadSheet.getRange(i+2, 2).setNumberFormat("mm/dd/yyyy h:mm:ss AM/PM"); //setting the correct format for date and time
spreadSheet.getRange(i+2, 3).setValue(endDate);
spreadSheet.getRange(i+2, 3).setNumberFormat("mm/dd/yyyy h:mm:ss AM/PM"); //setting the correct format for date and time
spreadSheet.getRange(i+2, 4).setValue(location);
spreadSheet.getRange(i+2, 5).setValue(description);
}
}
这是我实现此输出的参考和指南: https://www.youtube.com/watch?v=qXG-i_sG8CI&list=PLv9Pf9aNgemv62NNC5bXLR0CzeaIj5bcw&index=10
【讨论】: