2017-03-05 95 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