服务> Calendar API v3> calendar.events.watch
我收到了以下请求和回复
请求
POST https://www.googleapis.com/calendar/v3/calendars/mailid%40domain.com/events/watch?key={YOUR_API_KEY}
{
}
响应
400 OK
{
"error": {
"errors": [
{
"domain": "global",
"reason": "required",
"message": "entity.resource"
}
],
"code": 400,
"message": "entity.resource"
}
}
然后我按照下面的谷歌文档进行了跟踪 https://developers.google.com/google-apps/calendar/v3/push
注册您的域名
第1步:确认您拥有域名
第2步:注册您的域名
我在Google网站管理员工具中验证了我的域名/通知。 我验证的域名如下所示:
并在 Google Developer Console 中的 PUSH 下的webhook中添加了我的域名,如doc中所述。
我在这里缺少什么,plz在我的域名SSL证书中存在问题,我怎么能在API资源管理器中进行至少测试,以便我得到返回代码200 OK。之后,我需要通过Google Apps脚本实现推送/观看。
是否有任何应用程序脚本文档可以使用推送通知。
任何提示,小费都会对我有所帮助,过去1周我在试错法中对此感到厌倦。
答案 0 :(得分:0)
在您发布正文的请求中为空。在文档中有一个示例,您需要提供日历ID,web_hook和其他信息:
{
"id": "01234567-89ab-cdef-0123456789ab", // Your channel ID.
"type": "web_hook",
"address": "https://example.com/notifications", // Your receiving URL.
...
"token": "target=myApp-myCalendarChannelDest", // (Optional) Your channel token.
"expiration": 1426325213000 // (Optional) Your requested channel expiration time.
}
创建推送通知时添加此信息。
对于使用应用程序脚本,您可以使用“fetch()”方法使用URLfetch服务,然后您需要提供参数提及并将调用作为POST。
希望这有帮助。
更新:我会写在这里以获得更多空间。
推送通知以这种方式工作。 - 您可以使用ID,要监视的资源,要接收通知的地址以及可选参数创建推送通知。
- 如果成功,服务器将监视该资源,并将向请求中提到的地址发送通知,描述对资源进行更改时的更改。
- 服务器需要知道您收到了通知,所以从#1中提到的地址开始,您需要告诉服务器您收到了返回HTTP 200响应的通知。 (为此你需要一个正在收听通知并发送回复的应用程序)
您的问题 1.-由于服务器会向网址发送HTTP请求(您的web_hook地址),因此Google要求它是安全的,这就是为什么它必须是HTTPS。
2.-是的,如果没有该网址,您将无法收到通知。
3.- Google还需要验证您提供的网址实际上是您的网址,因此您需要提供网址,然后Google会为您提供一个文件,您必须在该网址中提供此文件,然后Google将调用url将检索该文件。然后你可以证明这个URL是你的。我不确定这个步骤是否可以通过应用程序脚本完成。您实际上可以将脚本部署为Web应用程序,但我不确定您是否可以将其用于此目的。(here您可以找到更多信息以及验证URL的不同方法)
4.-那是你自己创造的。在文档中指出了它的建议。
我希望这能澄清你的问题。
您可以在此处查看push notifications的工作原理,此示例适用于云端硬盘,但概念相同。