谷歌日历手表过期时间超过1个月怎么办?

Rod*_*iko 5 php google-calendar-api google-api

我将我的 CRM 系统与 Google 日历同步。为此,我要求push notifications用户将 Google 日历添加到我的系统中。我已经成功创建了手表,并将过期时间设置为2030年,但是当我收到手表事件的响应时,显示手表的过期时间设置为一个月。

问题:

  1. 这是否意味着我需要每月刷新系统中每个用户日历的手表?
  2. 有没有办法让手表不受限制?

我的代码:

$channel =  new Google_Service_Calendar_Channel($client);
$uuid = gen_uuid(); 
$channel->setId($uuid); 
$channel->setType('web_hook'); 
$channel->setExpiration('1919995862000');
$address = $sugar_config['site_url'] . "/index.php?entryPoint=updateFromCal";   
$channel->setAddress($address); 
$watchEvent = $service->events->watch($bean->google_cal_id_c, $channel);
Run Code Online (Sandbox Code Playgroud)

响应:

    [address] => 
    [expiration] => 1417667348000
    [id] => 87453668-b1fd-4468-beca-xxxxxxxxxxxx
    [kind] => api#channel
    [params] => 
    [payload] => 
    [resourceId] => xxxxxxxxx-xxxxxxxxxxx
    [resourceUri] => https://www.googleapis.com/calendar/v3/calendars/xxxxxx@gmail.com/events?key=xxxxxxxxxxxxxxxxxxxxWHxxxxxxalt=json
    [token] => 
    [type] => 
    [modelData:protected] => Array
Run Code Online (Sandbox Code Playgroud)

小智 4

通知通道可以有一个过期时间,其值由您的请求或任何 Google Calendar API 内部限制或默认值确定(使用限制性更强的值)。目前没有自动更新通知通道的方法。当通道即将到期时,您必须通过调用 watch 方法创建一个新通道。以下是有关通知渠道的更多文档的链接。

  • 过期时间默认设置为 7 天。但可以通过请求参数最多增加 1 个月。如果给出的值超过 1 个月,Google 会自行将其设置为 1 个月。 (2认同)