当前位置: 首页 > 知识库问答 >
问题:

PHP中的Google日历推送通知监视命令

长孙波鸿
2023-03-14

我正在使用php watch commant:

$service = new Google_Service_Calendar($client);


$channel =  new Google_Service_Calendar_Channel($client);
$channel->setId('20fdedbf0-a845-11e3-1515e2-0800200c9a6689111');
$channel->setType('web_hook');
$channel->setAddress('https://www.exampel.com/app/notification');

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

这个命令工作正常,我得到的响应是:

Google_Service_Calendar_Channel Object ( [address] => [expiration] => 1401960485000 [id] => 20fdedbf0-a845-11e3-1515e2-0800200c9a6689111 [kind] => api#channel [params] => [payload] => [resourceId] => HZjSdbhwcd5KMKEA3ATA31LoR-w [resourceUri] => https://www.googleapis.com/calendar/v3/calendars/primary/events?key=AIzaSyBl_Y7Y4eQDve-0DjwzBEP7_qOLo-67ouY&alt=json [token] => [type] => [modelData:protected] => Array ( ) [processed:protected] => Array ( ) ) 

然而在我的设置url中,当日历中发生更改时,我不会收到任何消息。我错过什么了吗!?

共有3个答案

周墨一
2023-03-14

我今天遇到了这个问题,所以想在这里补充更多细节。

谷歌只将标题发送到您的URL。因此,如果您正在等待获取一些数据(就像我一样),您将不会获得任何数据(除了某些情况)。

检查此Google日历API文档以接收通知

了解通知消息格式

所有通知消息都包含一组带有X-Goog前缀的HTTP头。某些类型的通知还可以包括消息正文。

以下是我在webhook回调URL中收到的标题。

[Host] => mydomain.com
[X-Goog-Channel-ID] => 10ddfddt0-a995-10f4-1254e2-0000000a0a0609001
[X-Goog-Channel-Expiration] => Thu, 11 Jan 2018 10:04:04 GMT
[X-Goog-Resource-State] => exists
[X-Goog-Message-Number] => 2526579
[X-Goog-Resource-ID] => 9OG_a-ECJycPkpNR1ZrWSon5_i1
[X-Goog-Resource-URI] => https://www.googleapis.com/calendar/v3/calendars/primary/events?maxResults=250&alt=json
[Content-Length] => 0
[Connection] => keep-alive
[User-Agent] => APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html)
[Accept-Encoding] => gzip,deflate,br

我还在这里找到了一些额外的代码示例,如果您想在没有客户端库的情况下向Google API发出请求,您可以使用这些示例。

希望这能帮助到某人。

仉刚洁
2023-03-14

还要确保endpoint是有效的https URL。不允许使用自签名证书。

来源:https://developers.google.com/google-apps/calendar/v3/push

诸福
2023-03-14

我有一个类似的问题,这是由我的应用程序上的身份验证引起的。

尝试将post请求发送到https://www.exampel.com/app/notification查看是否收到。如果没有,请仔细检查您的路由或身份验证。

 类似资料:
  • 我正在尝试使用PHP和V3 api为Google日历设置推送通知。 我拥有Auth2.0权限,可以从我的应用程序在谷歌上创建事件。现在我想知道用户何时对google日历进行任何更改(CRUD操作)。 这是我的代码: 这是输出: 到目前为止,我不知道为什么address返回null,也许这就是问题所在。但我不知道如何修复它。 同时阅读以下内容:#26730263和我自己的代码没有太大区别。 我做了g

  • 我最近为谷歌日历配置了谷歌推送通知。我使用推送通知通知在关注的日历中创建/更新/删除的事件,它工作得非常好,我使用双向同步。 但是,我在此设置中发现了一个小故障。我有一个创建事件的本地应用程序。它与Google日历同步(使用API调用),Google再次将事件通知给我的本地应用程序。这会导致事件重复。 如何区分从以下2种情况收到的推送通知? 案例1:用户在Google日历中创建或其他一些应用程序创

  • 尊敬的谷歌日历团队:, 我们想为日历开发推送通知。我已经看完了这篇文章https://developers.google.com/google-apps/calendar/v3/push. 但我有几个问题:- 我们也有C语言的日历消息推送吗? 如何获取通知通道id? 域在这种情况下是什么意思?域将始终gmail.com。 你能分享一个可以显示日历工作消息推送的示例吗? -拉胡尔

  • 我正在使用API explorer和Chrome Advanced Rest Client根据给定的示例观看事件资源。https://developers.google.com/google-apps/calendar/v3/push#watch_request_examples 要求 回应 > 我在google上搜索了这个问题,但找不到太多帮助。 有人能告诉我,请求有什么问题吗?

  • 我一直在研究如何将((谷歌推送通知))与PHP结合使用,但没有太多的工作示例/文档。。。 我正试图让它在一个内部网络上工作,这个网络不是通过HTTP对外开放的。 我能够从我们的外向型域通过HTTPS实现这一点,但内部尝试在Chrome控制台中告诉我,“API可能不再从不安全的来源使用”,我发现这意味着它需要HTTPS。 有人知道这方面可能的解决方法吗?欺骗HTTPS,或者允许它通过HTTP继续?我

  • 我面临Google日历推送通知的问题。首先我想解释我的场景。 我正在尝试开发一个java应用程序,以集成到处理传感器和执行器的平台中。此应用程序的目标是使用Google日历API和推送通知来跟踪某种事件。我选择的第一个“架构”如下(鉴于我年轻的开发经验,我愿意接受建议和批评;-): 一个简单的Tomcat Servlet,它将成为Google服务器的最终webhook(A) 这种结构背后的逻辑(可