Вызов API Office365 для синхронизации событий, регулирования

Я пытаюсь синхронизировать несколько событий из Outlook в моей локальной БД, и я вызываю API, как показано ниже:

$url = 'https://outlook.office365.com/api/v2.0/users/' . $this->user . '/CalendarView/'
. '?startDateTime=' . $start_datetime
. '&endDateTime=' . $end_datetime

Это дает мне все события из Outlook между двумя конкретными датами.

Затем я иду и сохраняю все эти события, используя код ниже. Проблема в том, что он возвращает только 10 событий одновременно.

$http = new \Http_Curl();
$http->set_headers( $this->get_headers() );
$response = $http->get( $url );

$data = array();

$continue = true;
while ( $continue ) {
if ( isset($response->value) ) {
$arr = array();

foreach ( $response->value as $event ) {
$arr[] = $event;
}

$data = array_merge( $data, $arr );
}

$property = '@odata.nextLink';
if ( isset( $response->$property ) ) {
$url = $response->$property;
$response = $http->get( $url );
} else {
$continue = false;
}
}

unset( $http );

return $data;

Затем я попытался вызвать API, как показано ниже, установив для параметра top значение 10, но в результате я получил много пустых событий.

$url = 'https://outlook.office365.com/api/v2.0/users/' . $this->user . '/CalendarView/'
. '?startDateTime=' . $start_datetime
. '&endDateTime=' . $end_datetime
.'&top=100'

Я стараюсь избегать более 60 звонков в минуту. Есть ли способ сначала получить количество событий между двумя датами, а затем получить их все, так что top Параметр должен фактически быть общим количеством событий.

0

Решение

Правильный параметр запроса $top и не top, уведомление $ там.

http://docs.oasis-open.org/odata/odata/v4.0/errata03/os/complete/part2-url-conventions/odata-v4.0-errata03-os-part2-url-conventions-complete. HTML # _Toc453752362

5.1.5 Параметры системных запросов $ top и $ skip
Опция системного запроса $ top запрашивает количество элементов в запрашиваемой коллекции, которые будут включены в результат. Опция $ skip query запрашивает количество элементов в запрашиваемой коллекции, которые должны быть пропущены и не включены в результат. Клиент может запросить определенную страницу элементов, комбинируя $ top и $ skip.
Семантика $ top и $ skip описана в документе [OData-Protocol]. Синтаксические правила top и skip [OData-ABNF] определяют формальную грамматику параметров запроса $ top и $ skip соответственно.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]