Push notification 谷歌推送通知频道已过期

Push notification 谷歌推送通知频道已过期,push-notification,google-api,google-calendar-api,google-api-client,Push Notification,Google Api,Google Calendar Api,Google Api Client,我需要实现谷歌推送通知逻辑来修复通道。 我知道谷歌提供了标题字段X-Goog-Channel-Expiration。修复通道的一种方法是添加crone表达式,以按事件监视过期日期时间和调用处理程序。我对另一种解决方案很感兴趣 我可以收到关于谷歌推送通知频道过期的消息吗? 哪个字段(值)让我知道频道已过期?基于: 目前没有自动更新通知通道的方法。当频道即将到期时,必须通过调用watch方法创建一个新频道。与往常一样,必须为新频道的id属性使用唯一值。请注意,当同一资源的两个通知通道处于活动状态时,

我需要实现谷歌推送通知逻辑来修复通道。 我知道谷歌提供了标题字段
X-Goog-Channel-Expiration
。修复通道的一种方法是添加crone表达式,以按事件监视过期
日期时间
和调用处理程序。我对另一种解决方案很感兴趣

我可以收到关于谷歌推送通知频道过期的消息吗? 哪个字段(值)让我知道频道已过期?

基于:

目前没有自动更新通知通道的方法。当频道即将到期时,必须通过调用
watch
方法创建一个新频道。与往常一样,必须为新频道的
id
属性使用唯一值。请注意,当同一资源的两个通知通道处于活动状态时,可能存在“重叠”时间段

X-Goog-Channel-Expiration
可以在通知消息的标题部分找到(有时存在)

我找到了一个相关的方法,以便您可以在请求watch方法时设置过期时间。代码如下:

 $service = new Google_Service_Calendar($client);
 $channel =  new Google_Service_Calendar_Channel($service);
 $channel->setId($uniqueID);
 $channel->setType('web_hook');
 $channel->setAddress('https://sample.net/notificationCallBack.php');

 $timetoExpire = time()+3600000;
 $optParams = array('ttl' => $timetoExpire);
 $channel->setParams($optParams);

 $watchEvent = $service->events->watch($calendarID, $channel);
现在您已经设置了过期日期,现在检查标题部分并查看
X-Goog-Channel-expiration

通道的过期时间(如果有)作为Unix时间戳(毫秒)包含在watch方法返回的信息中

希望这有帮助

 $service = new Google_Service_Calendar($client);
 $channel =  new Google_Service_Calendar_Channel($service);
 $channel->setId($uniqueID);
 $channel->setType('web_hook');
 $channel->setAddress('https://sample.net/notificationCallBack.php');

 $timetoExpire = time()+3600000;
 $optParams = array('ttl' => $timetoExpire);
 $channel->setParams($optParams);

 $watchEvent = $service->events->watch($calendarID, $channel);