目前,我有一个工作表绑定脚本,用于读取电子表格数据并根据工作表创建日历事件。该电子表格还存储了其他用户的日历ID(不属于我),我正在尝试读取/写入他们的Google日历。
我理想的使用流程是,单个用户可以为所有存储的用户触发脚本,或者每个用户都可以单击脚本并将其事件添加到其指定的日历中,但我发现我甚至无法仅使用其 calendarID 访问其他人的日历。
在我在另一个Google帐户上创建测试日历后,我的代码早些时候崩溃了。我将日历切换为公共日历,现在至少按照 getEvents() 文档的指示获得空值。然后,我订阅了该日历,并收到了“例外:不允许操作”。
我遇到了OAuth2,觉得这是我需要以某种方式实现的东西,但我不确定如何去做。我是否可以从脚本中对多个用户的日历进行更改,或者我是否需要了解Web应用程序,这是否允许我以某种方式访问其他人的日历?
编辑:我不是域名用户,只是使用私人个人谷歌帐户
编辑2:还发现附加组件是一回事。去阅读
/**
Function to add shift details to user's calendar
@param{object} user-object with keys of column header's of user-info sheet
(name, email, year, calName, calID, early, late)
@param{object} eventDetails - an object with keys created after interpreting shift codes
(title, start, end, location, desscription, problem, pdate, pvalue)
*/
function addToCalendar(user, eventDetails){
var calendar = CalendarApp.getCalendarById(user.calID);
if(calendar == null){
Logger.log(user.name); //testing code, realized I couldn't accesss other's calIDs here
}
var existingEvents = calendar.getEvents(eventDetails.start, eventDetails.end);
if(existingEvents.length>0){
if(existingEvents[0].getTitle() == eventDetails.title){
Logger.log("ALREADY CREATED!!");
return;
}
}
calendar.createEvent(eventDetails.title, eventDetails.start, eventDetails.end,
{description : (eventDetails.description ? eventDetails.description:""),
location: (eventDetails.location ? eventDetails.location:"")});
}
慕尼黑8549860
相关分类