Google 日历 V3 API 通过 java 客户端推送通知

Google Calendar V3 API Push notification via java client

我需要订阅 Google 日历 API v3 推送通知。我检查了文档 - 它提供了有用的 API 详细信息。我检查了 java client 图书馆。它包含有用的 类...

正在尝试:

com.google.api.services.calendar.Calendar calendar = initObject();
...
calendar.calendarList().get("myMail@ukr.net").execute();

因此,我有 CalendarListEntry 地图和我的日历信息。 尝试使用相同的 calendarClient 对象:

calendar.calendarList().watch(channel).execute();

结果:

17:46:26,540 ERROR # c.n.c.c.g.GoogleCalendarClient.watchCalendarList com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized

我好像遇到了授权问题。我想我不应该有一个,因为我可以再尝试一次相同的 client 对象并且它 returns 正确的结果。我也考虑过使用 optional token 字段的情况 - 没有变化。

如果有人需要我的频道对象: 17:58:38,022 信息 #{"address":"https://myPersonalVerifiedByGoogleAddr/google/calendars/","id":"4ac3e9e3-8428-405e-a8ed-6cf0e4fa25ff","payload":false, "type":"web_hook"}

address - my inet address verified by google
id - generated
payload - false (because of no content in my request)
type - web_hook (following google doc)

我不知道如何修复监视请求中的 unauthorized,因为客户端是 authorized(我将无法加载日历信息)。

您可能想尝试通过发送 http 请求来测试它,以验证它是否只是一个 OAuth 令牌问题。接下来是验证您是否已完成发出监视请求所需的所有步骤。这将缩小您遇到问题的可能原因。

还要检查文档中是否指出 "the Google Calendar API will be able to send notifications to this HTTPS address only if there is a valid SSL certificate installed on your web server."