Reactjs 在google calander中插入多个事件

Reactjs 在google calander中插入多个事件,reactjs,google-calendar-api,google-api-js-client,Reactjs,Google Calendar Api,Google Api Js Client,我需要插入120事件从一个用户一次谷歌calander 我有一个React应用程序,它可以在120个不同的日期创建120份相同的提醒 我想将它们添加到日历中,并使用import{gapi}从“gapi脚本” 我尝试以如下方式单独发送事件: var event = { 'summary': nameValue.toString(), 'description': ReminderTextValues.toString(),

我需要插入120事件从一个用户一次谷歌calander 我有一个React应用程序,它可以在120个不同的日期创建120份相同的提醒

我想将它们添加到日历中,并使用
import{gapi}从“gapi脚本”

我尝试以如下方式单独发送事件:

var event = {
            'summary':  nameValue.toString(),
            'description': ReminderTextValues.toString(),
            'start': {
              'date': ISODateString(javasScriptDate)
            },
            'end': {
              'date': ISODateString(NextDate)
            },
            'reminders': {
              'useDefault': false,
              'overrides': [
                {'method': "email", 'minutes': 24 * 60},
                {'method': "popup", 'minutes': 30}
              ]
            }
          }


         var request = gapi.client.calendar.events.insert({
            'calendarId': 'primary',
            'resource': event,
          })

          request.execute(event => {
            console.log("Executed:", event)
          })
// we will submit all the request in a 1 batch
        var batch = gapi.client.newBatch();

        // We will save the eevnt for the next 120 years
        for (var startYear = HebrewDateEnteredByTheUser.year; startYear< (HebrewDateEnteredByTheUser.year+120); startYear++ )
        {

          // JS date 
          const javasScriptDate = new Date(day, month, startYear).addHours(1);
          const NextDate = javasScriptDate.addHours(22);

          // Google event
          var event = {
            'summary':  nameValue.toString(),
            'description': ReminderTextValues.toString(),
            'start': {
              'date': ISODateString(javasScriptDate)
            },
            'end': {
              'date': ISODateString(NextDate)
            },
            'reminders': {
              'useDefault': false,
              'overrides': [
                {'method': "email", 'minutes': 24 * 60},
                {'method': "popup", 'minutes': 30}
              ]
            }
          }

          batch.add(gapi.client.calendar.events.insert({
            'calendarId': 'primary',
            'resource': event,
          }));
即使120事件中只有100个返回到calander中的
403
(这是一个不同的问题),我看到实际上只有1个被添加

我还尝试使用批处理,如下所示:

var event = {
            'summary':  nameValue.toString(),
            'description': ReminderTextValues.toString(),
            'start': {
              'date': ISODateString(javasScriptDate)
            },
            'end': {
              'date': ISODateString(NextDate)
            },
            'reminders': {
              'useDefault': false,
              'overrides': [
                {'method': "email", 'minutes': 24 * 60},
                {'method': "popup", 'minutes': 30}
              ]
            }
          }


         var request = gapi.client.calendar.events.insert({
            'calendarId': 'primary',
            'resource': event,
          })

          request.execute(event => {
            console.log("Executed:", event)
          })
// we will submit all the request in a 1 batch
        var batch = gapi.client.newBatch();

        // We will save the eevnt for the next 120 years
        for (var startYear = HebrewDateEnteredByTheUser.year; startYear< (HebrewDateEnteredByTheUser.year+120); startYear++ )
        {

          // JS date 
          const javasScriptDate = new Date(day, month, startYear).addHours(1);
          const NextDate = javasScriptDate.addHours(22);

          // Google event
          var event = {
            'summary':  nameValue.toString(),
            'description': ReminderTextValues.toString(),
            'start': {
              'date': ISODateString(javasScriptDate)
            },
            'end': {
              'date': ISODateString(NextDate)
            },
            'reminders': {
              'useDefault': false,
              'overrides': [
                {'method': "email", 'minutes': 24 * 60},
                {'method': "popup", 'minutes': 30}
              ]
            }
          }

          batch.add(gapi.client.calendar.events.insert({
            'calendarId': 'primary',
            'resource': event,
          }));
在此之后,我没有得到任何错误,在领事馆我看到
所有的工作都完成了但是当我检查日历时,我只能找到前5个事件,其余的都被忽略了


如何将120个事件一次插入google calander?

您的症状与“超出403速率限制”错误一致。 您需要限制您的请求。前20个请求通常是可以的,但是在那之后,您需要将速度降低到大约每1.5秒一个请求。不要使用批处理,因为a)它已被弃用,b)它使问题变得更糟


我使用的方法是将所有请求放在内存队列(我使用数组)上,然后使用一个单独的例程,以每x秒一个的速率对项目进行出列。任何失败都会留在队列中并重试。我的算法有点启发性,它会逐渐提高速度,直到达到304,然后减速到2秒间隔。

您的症状与“超过403速率限制”错误一致。 您需要限制您的请求。前20个请求通常是可以的,但是在那之后,您需要将速度降低到大约每1.5秒一个请求。不要使用批处理,因为a)它已被弃用,b)它使问题变得更糟


我使用的方法是将所有请求放在内存队列(我使用数组)上,然后使用一个单独的例程,以每x秒一个的速率对项目进行出列。任何失败都会留在队列中并重试。我的算法有点启发性,它会逐渐提高速度,直到达到304,然后降低到2秒的间隔。

我知道新的备份系统一次只能发送5个请求。你试过把它分开吗。为什么要麻烦分批?为什么不一次发送一个呢?我试过了,他们失败了…你想在120天内插入相同的事件还是不同的事件?@Kessy他们是120年内不同日期的相同事件你可能想看看这个链接。您收到的与
403
错误相关的消息是什么@开发上次我知道新的支持系统只允许您一次发送5个请求。你试过把它分开吗。为什么要麻烦分批?为什么不一次发送一个呢?我试过了,他们失败了…你想在120天内插入相同的事件还是不同的事件?@Kessy他们是120年内不同日期的相同事件你可能想看看这个链接。您收到的与
403
错误相关的消息是什么@开发抱歉,没有。它与我的应用程序紧密相连。试试Freelorer.com抱歉,没有。它与我的应用程序紧密相连。试试自由职业者网站