谷歌日历推送通知设置

我正在尝试使用PHP和V3API为Google日历设置推送通知

我已经获得了Auth2.0权限,并且可以从我的应用程序在google上创建事件。现在我想知道用户何时对谷歌日历进行任何更改(CRUD操作)

这是我的代码:

私人$imageService;
公共$google_客户端;
公共$google_日历;
公共函数构造()
{
$this->imageService=new-imageService();
$this->谷歌客户端=新谷歌客户端();
$this->谷歌客户端->设置应用程序名($\u ENV['google\u应用程序名]);
$this->google\u client->setDeveloperKey($\u ENV['google\u API\u KEY');
$this->google\u client->setClientId($\u ENV['client\u ID');
$this->google\u client->setClientSecret($\u ENV['client\u SECRET']);
$this->谷歌客户端->setAccessType('offline');
$this->谷歌客户端->设置IncludeGrandScopes(真);
$this->谷歌客户端->设置范围(数组('email','profile','https://www.googleapis.com/auth/plus.me', 'https://www.googleapis.com/auth/calendar'));
$this->谷歌日历=新的谷歌服务日历($this->谷歌日历客户端);
}
公共功能googleCalendarWatch($uuid){
$channel=新的Google\u服务\u日历\u频道($this->Google\u客户端);
$channel->setId($uuid);
$channel->setType('web_hook');
$channel->设置地址("https://example.com/google/googleNotifications");
$channel->setExpiration("1919995862000");
$this->谷歌日历->事件->观看($primary',$channel);
}

这是输出:

Google\u服务\u日历\u频道对象(
[内部\u gapi\u映射:受保护]=>数组()
[地址]=>
[到期日]=>1426272395000
[id]=>aee2b430-34bf-42bc-a597-ada46db42799
[种类]=>api#频道
[参数]=>
[有效负载]=>
[resourceId]=>51IKGpOwCJ6EMraQMUc1\u 04MODk
[resourceUri]=>https://www.googleapis.com/calendar/v3/calendars/primary/events?key=AIzaSyBFUvq3OZO6ugAKvz7l8NgLS0V6DUJq8Vc&alt=json
[令牌]=>
[类型]=>
[modelData:protected]=>数组()
[已处理:受保护]=>阵列())

到目前为止,我不知道为什么地址返回null,也许这就是问题所在。但我不知道如何修复它

同时阅读以下内容:#26730263和查看我自己的代码没有太大区别

我做了谷歌说的所有事情,注册域名,添加凭证,api密钥,允许推送域名等等

为每个单独的资源创建一个通知通道,然后将通知您对该资源的任何修改。以下信息直接来自谷歌(创建通知渠道)

发出监视请求:

每个可监视的Google日历API资源在以下形式的URI中都有一个关联的监视方法:

https://www.googleapis.com/**apiName**/**apiVersion**/**resourcePath**/watch

要为有关特定资源更改的消息设置通知通道,请向资源的watch方法发送POST请求。
每个通知通道都与特定用户和特定资源(或一组资源)相关联。除非当前用户拥有或拥有访问此资源的权限,否则监视请求将不会成功。

示例:

开始监视给定日历上事件集合的更改:

POSThttps://www.googleapis.com/calendar/v3/calendars/[email protected]/events/watch
授权:当前用户的承载身份验证令牌
内容类型:application/json
{
“id”:“01234567-89ab-cdef-0123456789ab”,//您的频道id。
“类型”:“网钩”,
“地址”:https://example.com/notifications“,//您的接收URL。
...
“令牌”:“target=myApp myCalendarChannelDest”/(可选)您的信道令牌。
“到期”:1426325213000/(可选)您请求的频道到期时间。
}
}

参考:谷歌(创建通知渠道)(2018年3月19日)

  • 地址
  • 代币

发表评论