Идентификация уведомления о значении API Google Calendar API

Я успешно регистрирую для Google Calendar API изменения уведомлений с помощью PHP:

$service = new Google_Service_Calendar($client); $channel = new Google_Service_Calendar_Channel($service); $channel->setId(<some random ID>); $channel->setType('web_hook'); $channel->setAddress('https://www.myserver.net/triggerCode.php'); $timetoExpire = time()+3600000; $channel->setExpiration($timetoExpire); $watchEvent = $service->events->watch('<some_calendar_name>', $channel); 

EXCEPT это работает, только если строка $ channel-> setExpiration закомментирована.

Я получаю сообщение об ошибке, когда ttl недействителен. Я попытался установить срок действия на несколько секунд (например, 6000), количество миллисекунд (например, 600000) и время () плюс несколько миллисекунд, и я всегда получаю ту же ошибку:

 Invalid ttl value for channel -1402834554' 

Как я должен это установить?

Наконец, он работал. Этот PHP-код работает:

  $service = new Google_Service_Calendar($client); $channel = new Google_Service_Calendar_Channel($service); $channel->setId($uniqueID); $channel->setType('web_hook'); $channel->setAddress('https://mydomain.net/notificationCallBack.php'); $timetoExpire = time()+3600000; $optParams = array('ttl' => $timetoExpire); $channel->setParams($optParams); $watchEvent = $service->events->watch($calendarID, $channel); 

Вышеуказанное истечение составляет 42 дня, но срок годности истекает до 30 дней. Я предполагаю, что это верхний предел.

Из документа API выглядит так, что событие watch не включает параметр expiration .

Запрос принимает:

 { "id": string, "token": string, "type": string, "address": string, "params": { "ttl": string } } 

Ответ содержит expiration , но не сам запрос:

 { "kind": "api#channel", "id": string, "resourceId": string, "resourceUri": string, "token": string, "expiration": long } 

Может быть, вы имеете в виду ttl , который является частью параметров запроса?


FYI: также похоже, что expiration определяется как Date and time of notification channel expiration, expressed as a Unix timestamp, in milliseconds.