Невозможно вставить несколько событий одновременно в Календарь Google в php - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь вставить несколько событий в календарь 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...