Не удается создать повторяющееся событие, но работает одно событие - PullRequest
0 голосов
/ 03 июня 2019

Так что я нахожусь в одном шаге от завершения своего веб-приложения, и, так как повторяющиеся события будут основной привлекательностью, я немного разочарован.Даже если я попытаюсь создать повторяющееся событие из шаблона API Календаря Google, оно просто не будет работать.

Основной источник: https://developers.google.com/calendar/create-events Этот шаблон основан на моем:

var event = {
  'summary': 'Google I/O 2015',
  'location': '800 Howard St., San Francisco, CA 94103',
  'description': 'A chance to hear more about Google\'s developer products.',
  'start': {
    'dateTime': '2015-05-28T09:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'end': {
    'dateTime': '2015-05-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles'
  },
  'recurrence': [
    'RRULE:FREQ=DAILY;COUNT=2'
  ],
};

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

request.execute(function(event) {
  appendPre('Event created: ' + event.htmlLink);
});

Примечание:

  let event = {
    'summary': title[0], //Name of the show, type: string
    'colorId': '2',
    'description': 'New episode of '+ title[0],
    'start': {
      'dateTime': `${initDate}T${hours}:${minutes}:00+09:00`,
      //Example: '2019-06-17T01:30:00+09:00' 
    },
    'end': {
      'dateTime': `${initDate}T${hourAndMin(hours,minutes)}+09:00`,
      //Same but with +30 mins example: '2019-06-17T02:00:00+09:00'
    },
    'recurrence': [
      'RRULE:FREQ=WEEKLY;UNTIL=20190717' //Example 1 month weekly
      //I have also tried the exact line from the template.
    ],
  };

  let request = gapi.client.calendar.events.insert({
    'calendarId': 'primary',
    'resource': event
  });
  request.execute(function(event) {
    if (event.htmlLink === undefined){
      alert('Error.')
    } else {
      alert('Event created in your Google Calendar.');
    }
  });

Когда я удаляю часть 'повторение', она работает, но если я оставляю ее там, я получаю ошибку неверного запроса POST 400 в консоли браузера.

1 Ответ

0 голосов
/ 03 июня 2019

Google довольно явно требует предоставить только один часовой пояс для повторения.

Я считаю, что в вашем расчете часового пояса есть конфликт. Ваш dateTime предлагает -07:00, но America/Los_Angeles в настоящее время -08:00. Возможно, лучше оставить дифференциал timeZone вне значения в атрибуте dateTime для начала и конца. Таким образом, Google может определить смещение независимо от того, действует летнее время или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...