Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Google Apps脚本为每个事件创建(在特定的if语句中)添加唯一的Google Meet链接_Javascript_Google Apps Script_Google Sheets_Google Api_Google Calendar Api - Fatal编程技术网

Javascript 如何使用Google Apps脚本为每个事件创建(在特定的if语句中)添加唯一的Google Meet链接

Javascript 如何使用Google Apps脚本为每个事件创建(在特定的if语句中)添加唯一的Google Meet链接,javascript,google-apps-script,google-sheets,google-api,google-calendar-api,Javascript,Google Apps Script,Google Sheets,Google Api,Google Calendar Api,如何为每个事件添加新生成的Google Meet链接,这些事件仅为嵌套在以下内容中的if语句生成: var event_title = ""; var desc = ""; var today = new Date(); var thirtyMinutes = new Date(today); thirtyMinutes.setMinutes(today.getMinutes() + 30); var event = calendar.createEve

如何为每个事件添加新生成的Google Meet链接,这些事件仅为嵌套在以下内容中的if语句生成:

var event_title = "";
var desc = "";
var today = new Date();
var thirtyMinutes = new Date(today);
thirtyMinutes.setMinutes(today.getMinutes() + 30);

var event = calendar.createEvent(event_title, today, thirtyMinutes, { description: desc }).setVisibility(CalendarApp.Visibility.PRIVATE).setColor("11").addPopupReminder(10);



 var example_description = 'example description';

                    if (interview_type == 'Example Interview') {
                        event.setTitle('Example Title');
                        event.setDescription(example_description + "");
                    }
我在另一个答案中找到了这个解决方案,但我似乎无法为我的用例配置它,因为它不会破坏我设置的当前事件创建设置,并使它为每个单独的事件创建生成一个新的设置,以及将它保持在触发特定类型事件创建的if语句中:

if (interview_type == 'Example Interview') {
event.setTitle('Example Title');
event.setDescription(example_description + "");
}
谢谢

您可以参考此示例代码:
函数createEvent(){
var calendarId='c_9CDQEQLUK7VSessartxxxxxx';
var calendar=CalendarApp.getCalendarById(calendarId);
var访谈类型=‘示例访谈’;
var事件_title=“”;
var desc=“”;
var today=新日期();
var Thirtimutes=新日期(今天);
三十分钟.setMinutes(今天.getMinutes()+30);
var event=calendar.createEvent(事件标题,今天,三十分钟,{description:desc})
.setVisibility(CalendarApp.Visibility.PRIVATE).setColor(“11”).AddPopurEmider(10);
Logger.log('Event ID:'+Event.getId());
var example_description=‘example description’;
如果(面试类型==‘示例面试’){
event.setTitle(“示例标题”);
event.setDescription(示例_description+“”);
//添加会议
变量tmpEvent={
会议数据:{
createRequest:{
conferenceSolutionKey:{
类型:“hangoutsMeet”
},
requestId:charIdGenerator()
}
}
}
//从活动的iCalUID中删除@google.com
var eventId=event.getId().replace(“@google.com”,”);
Logger.log(eventId);
patch(tmpEvent,calendarId,eventId,{conferenceDataVersion:1});
}
}
函数charIdGenerator()
{
var charId=“”;
对于(变量i=1;i<10;i++)
{ 
charId+=String.fromCharCode(97+Math.random()*10);
} 
//Logger.log(charId)
返回查里德;
} 
先决条件: 您需要在应用程序脚本中启用

致:

在步骤4中选择谷歌日历API


它是干什么的?
  • interview\u type
    设置为
    'Example interview'
    时,我们将在其主体中创建一个
    createRequest
    。它需要2个输入:
    • conferenceSolutionKey类型
      ,设置为
      hangoutsMeet
    • requestId
      ,它是客户机为此请求生成的唯一ID。客户端应为每个新请求重新生成此ID。如果提供的ID与前一个请求相同,则忽略该请求
    注意:

    我只是复制了我在网上找到的一个生成随机字符串的函数,并将该字符串用作
    requestId

  • 创建事件资源后,我们需要通过删除方法返回的
    iCalUID
    中的
    “@google.com”
    子字符串来获取事件id
  • 注意:

    获取事件的唯一iCalUID。请注意,Calendar v3 API和Calendar advanced service使用的iCalUID和事件id不相同,不能互换使用

  • 最后,我们需要使用更新我们新创建的事件

  • 输出:

    var event = {
      "summary": summary,
     "start": {
       "dateTime": start.toISOString()
         },
      "end": {
        "dateTime": end.toISOString()
          },
           "conferenceData": {
              "createRequest": {
               "conferenceSolutionKey": {
                 "type": "hangoutsMeet"
             },   
               "requestId": id
              }
         }
      };
    
     event = Calendar.Events.insert(event, 'primary', {
       "conferenceDataVersion": 1});
     return event.hangoutLink;
    
    function createEvent() {
      var calendarId = 'c_9cdqeqqluk7vsessartxxxxxx';
    
      var calendar = CalendarApp.getCalendarById(calendarId);
      var interview_type = 'Example Interview';
      var event_title = "";
      var desc = "";
      var today = new Date();
      var thirtyMinutes = new Date(today);
      thirtyMinutes.setMinutes(today.getMinutes() + 30);
    
      var event = calendar.createEvent(event_title, today, thirtyMinutes, { description: desc })
        .setVisibility(CalendarApp.Visibility.PRIVATE).setColor("11").addPopupReminder(10);
      Logger.log('Event ID: ' + event.getId());
    
      var example_description = 'example description';
    
      if (interview_type == 'Example Interview') {
        event.setTitle('Example Title');
        event.setDescription(example_description + "");
    
        //Add Meet Conference
        var tmpEvent = {
          conferenceData:{
            createRequest:{
              conferenceSolutionKey:{
                type: "hangoutsMeet"
              },
              requestId: charIdGenerator()
            }
          }
        }
    
        //remove @google.com from the iCalUID of the event
        var eventId  = event.getId().replace("@google.com","");
        
        Logger.log(eventId);
        Calendar.Events.patch(tmpEvent,calendarId,eventId,{conferenceDataVersion:1});
      }
    
    }
    
    function charIdGenerator()
     {
         var charId  ="";
           for (var i = 1; i < 10 ; i++) 
           { 
               charId += String.fromCharCode(97 + Math.random()*10);
           } 
         //Logger.log(charId)
         return charId;    
     }