2017-03-05 92 views
0

我需要订阅Google Calendar API v3推送通知。我检查过文档 - 它提供了有用的API细节。我检查了java client图书馆。它包含有用的类...Google Calendar V3 API通过java客户端推送通知

尝试:

com.google.api.services.calendar.Calendar calendar = initObject(); 
... 
calendar.calendarList().get("[email protected]").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对象,它会返回正确的结果。我还考虑过使用optionaltoken字段的情况 - 无变化。

如果有人需要我的频道对象: 17:58:38022 INFO#{ “地址”: “https://myPersonalVerifiedByGoogleAddr/google/calendars/”, “ID”: “4ac3e9e3-8428-405e-a8ed-6cf0e4fa25ff”, “有效载荷”:假的, “类型”:“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) 

我没有任何想法如何解决未经授权在收看请求,因为客户端是授权(我将无法加载日历信息)。

+0

您可能想通过发送[http请求](http://stackoverflow.com/q/20517294/5995040)来验证它是否仅仅是一个OAuth令牌问题。接下来要验证您是否完成了[制作观看请求]所需的所有步骤(https://developers.google.com/google-apps/calendar/v3/push#making-watch-requests)。这将缩小您遇到问题的可能原因。 –

+0

@Rebot先生“原因”:“push.webhookUrlUnauthorized”。我在论坛上检查过这个问题,但答案不帮我。 (我的应用程序已注册和验证,我只注册了'域名',尝试推送通知我使用'地址''domainName/google/calendars /')。没有SSL证书在我的网站(只有谷歌验证文件,以确认我的域名)... – Sergii

+0

@ Mr.Rebot,我必须在我的网络中使用SSL(如果我想集成谷歌)? – Sergii

回答

1

您可能想要通过发送http请求来验证它是否仅仅是一个OAuth令牌问题来测试它。接下来要验证您是否完成了所有必要的步骤来提出观看请求。这将缩小您遇到问题的可能原因。

另请检查文档中是否声明“只有当您的Web服务器上安装了有效的SSL证书时,Google Calendar API才能将通知发送到此HTTPS地址。”

+0

我已经在这方面得到了另一个问题,请问您可以[请检查它](http://stackoverflow.com/questions/42738920/google-push-notifications-java-handler)吗? – Sergii