Календарь Google - Дата события, а не дата первого экземпляра - PullRequest
0 голосов
/ 03 марта 2020

Я создаю онлайн-повестку дня, которая извлекает события из календаря Google, и в настоящее время он запрашивает дату начала только первого экземпляра повторяющегося события. Могу ли я что-нибудь сделать с API и javascript, чтобы показать фактическую дату каждого события, а не только первый экземпляр?

My HTML:

<div ng-controller="calCtrl">
<div ng-repeat="event in events">
  <div class="event-row">
    <span id="eventTitle">{{ event.summary }}</span>
    <span id="eventDate">{{ event.start.date | date:'EEE M/d/yyyy' }}{{ event.start.dateTime | date:'EEE M/d/yyyy' }}</span> // 
    <span id="eventTime">{{event.start.dateTime | date:'H:mm' }}</span>
    <span id="eventLocation">{{event.location}}</span>
  </div>
</div>

Мой JS пока:

var app = angular.module('eventApp', []);

app.factory('calendarServ', ['$http', function($http) {
  var today = (new Date()).toISOString();
  var APIKey = "___________";
  var url = "https://www.googleapis.com/calendar/v3/calendars/–––––––/events?maxResults=30&&timeMin=" + today + "&key=" + APIKey;

  return $http.get(url)
    .success(function(data) {
      return data;
    })
    .error(function(err) {
      return err;
    });
}]);

app.controller('calCtrl', ["$scope", "$http", "calendarServ", function($scope, $http, calendarServ) {
  $scope.events;

  calendarServ.success(function(data) {
    $scope.events = data.items;
  });
}]);

1 Ответ

0 голосов
/ 24 марта 2020

Вы можете получить фактические данные повторяющихся событий 'instances, сделав запрос к следующей конечной точке API:

https://www.googleapis.com/calendar/v3/calendars/{calendarId}/events/{eventId}/instances

Вы получите объект с повторяющимся событием экземпляры и их данные, такие как время начала, время окончания и т. д. c.

Пример ответа:

{
      "status": "confirmed", 
      "kind": "calendar#event", 
      "end": {
        "timeZone": "Europe/Madrid", 
        "dateTime": "2020-04-07T12:30:00+02:00"
      }, 
      "created": "2020-03-24T10:24:37.000Z", 
      "iCalUID": "xxxxxxxxxxxxxxxxxx", 
      "reminders": {
        "useDefault": true
      }, 
      "htmlLink": "https://www.google.com/calendar/event?eid=-x-x-x-x-x-x-x-x-x-x-x-x--x-x-x", 
      "sequence": 0, 
      "updated": "2020-03-24T10:24:37.166Z", 
      "summary": "Test recurring event", 
      "start": {
        "timeZone": "Europe/Madrid", 
        "dateTime": "2020-04-07T11:30:00+02:00"
      }, 
      "etag": "\"3170xxxxdddd2000\"", 
      "originalStartTime": {
        "timeZone": "Europe/Madrid", 
        "dateTime": "2020-04-07T11:30:00+02:00"
      }, 
      "recurringEventId": "50qkopajasmentalescsql", 
      "organizer": {
        "self": true, 
        "email": "fatt.miks@egfreeed.eu"
      }, 
      "creator": {
        "self": true, 
        "email": "fatt.miks@egfreeed.e"
      }, 
      "id": "50qkoeauc7jpn3nmelih5loitmustB&wor00Z"
    }

Примечание: Проверьте OAuthPlayground , чтобы протестировать API Google.

Ссылки: - Календарь API Экземпляры событий

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