我发现有人添加"邀请我"链接在Google日历中,如下所示。我已经尽了最大努力,但在有人点击某个活动时找不到添加此链接的方法。
答案 0 :(得分:2)
Molk是正确的,你需要设置AnyyCanAddSelf(true)。
我将如何处理将脚本部署为Web应用程序,该应用程序获取日历事件ID的查询参数,即Session.getActiveUser()。getEmail(),并将它们添加到日历事件中。我会在主日历的“描述”字段中创建URL(如截图,使用已部署脚本URL的URL并为id添加查询参数。
一个例子看起来像这样:
var calId = 'yourdomain.com_459nd7pqmn5irsqgn8p91febe4@group.calendar.google.com';
function inviteMe(){
try{
var cal = CalendarApp.getCalendarById(calId);
var start = new Date();
var end = new Date();
start.setHours(13);
end.setHours(14);
var event = cal.createEvent("Add Me Test", start,end);
event.setAnyoneCanAddSelf(true);
var eventId = event.getId();
var urlString = '<a href="' + ScriptApp.getService().getUrl() +'?eId=' + eventId + '" target="_blank">Invite Me</a>';
var desc ='Event details';
desc += '\n\n' + urlString;
// now that we have the url built out, add the description
event.setDescription(desc);
}catch(err){
Logger.log(err.lineNumber + ' - ' + err);
;
}
}
function doGet(event){
try{
// shorten the event parameter path;
var param = event.parameter;
// get the calendar event id passed in the query parameter
var eventId = param.eId;
var cal = CalendarApp.getCalendarById(calId);
var guest = Session.getActiveUser().getEmail();
var event = cal.getEventSeriesById(eventId);
event.addGuest(guest);
return ContentService.createTextOutput("You have been added to the event: " + event.getTitle());
}catch(err){
Logger.log(err.lineNumber + ' - ' + err);
}
}
它看起来会是这样的: 在活动详细信息中,单击“邀请我”链接
处理完成后,使用ContentService显示通知。
最后在用户日历中查看日历
事件所有者将不会在其描述区域中看到链接,只会看到原始html锚文本(请参见下面的屏幕截图)。 Google日历会为其他人呈现链接;我假设为了便于编辑,因为描述字段只是一个textarea输入,没有WYSIWYG控件。
答案 1 :(得分:1)
尝试使用“setAnyoneCanAddSelf(anyoneCanAddSelf)”