Я пытаюсь вставить несколько событий в календарь Google с помощью PHP.Когда я пытаюсь вставить одно событие с этим кодом ниже, это работает, но когда я хочу вставить несколько событий на сервер API календаря Google, чтобы сохранить больше данных, я получаю сообщение об ошибке.
Это код, которыйУ меня есть:
У меня есть строка JSON, эта строка была преобразована в массив php.
$calendar =
json_decode('
{
"summary": "Calendar name",
"description": "Calendar description",
"items":
[
{
"summary": "event1",
"colorId": "10",
"start": {
"dateTime": "2018-05-10T12:30:00+02:00"
},
"end": {
"dateTime": "2018-05-10T13:30:00+02:00"
},
"recurrence": [
"RRULE:FREQ=WEEKLY;COUNT=13;BYDAY=TH"
]
},
{
"summary": "event2",
"start": {
"dateTime": "2018-05-17T12:30:00+02:00"
},
"end": {
"dateTime": "2018-05-17T13:30:00+02:00"
}
},
{
"summary": "event3",
"description": "event3 description",
"colorId": "2",
"start": {
"date": "2018-05-10"
},
"end": {
"date": "2018-05-11"
},
"transparency": "transparent"
}
]
}
', true);
С помощью этих функций я могу добавить только одно событие в календарь Google.Когда я пытаюсь вставить больше событий, я получаю ошибки ...
function CreateCalendarEvents($calendar_id, $access_token, $events_json) {
$url_events = 'https://www.googleapis.com/calendar/v3/calendars/'.$calendar_id.'/events';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_events);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '. $access_token, 'Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($events_json));
$data = json_decode(curl_exec($ch), true);
$http_code = curl_getinfo($ch,CURLINFO_HTTP_CODE);
if($http_code != 200){
throw new Exception('Error : Failed to create events');
}
return $data['id'];}
Я вызываю функцию с этой строкой кода:
CreateCalendarEvents('primary', $_SESSION['access_token'], $calendar);