2014-01-24 71 views
2

我正在使用Google日曆推送通知。所有工作都很好,我沒有問題註冊我的頻道。按預期更改日曆會生成通知。Google日曆v3推送通知到期

然而問題是,一個小時左右通知過期。

在閱讀文檔時,我不知道爲什麼有一個期滿,因爲我沒有指定一個。

當頻道被註冊時,響應實際上陳述了從我註冊頻道開始1周的到期日 - 例如,星期五,2014年1月31日03:23:59 GMT。

但這並不是我所經歷的。

有人知道規定的行爲在這裏。

感謝您的幫助

保羅

+0

我跟了這通過與谷歌的支持,這是一個已知的問題與服務帳戶。不是好消息,但解決方法是每隔1小時重新創建一次頻道... [link] https://support.google.com/a/known-issues/15721?hl=zh-CN – PNC

回答

1

默認谷歌一直頻道到期時間爲一週, 如何過您可以通過使用TTL變量中設置的通道到期時間高達1個月

EX: body = { 
      "id": uuid, 
      "type": "web_hook" , 
      "token": "something_unique", 
      "address": "web hook url", 
      "params": { 
        "ttl" : 864000 
        } 
      } 
     calendar_service = get_calendar_service(user_email) 
     resource = calendar_service.events().watch(calendarId='primary', body=body).execute() 

這裏ttl以秒爲單位,並且它保持信道到期時間爲10天

+0

感謝您的幫助Venkatesh - 我已打開與谷歌門票,他們問我設置ttl屬性。他們說默認的超時時間是1小時 - 這正是我所經歷的。當我在你的例子中設置ttl值時,它對超時沒有任何影響。你遇到不同的事情嗎?在發送觀看請求之後,回調具有正確的到期時間 - 但它被忽略並且在似乎是1小時之後超時。 – PNC

+0

我已經更新了答案,你是否像上例中一樣嘗試? 與上述代碼能夠保持10天的頻道到期時間 –

+0

是我的json正文是json = {「id」:78,「type」:「web_hook」,「address」:「https://ilinker.com/ iLinkCalendar.ashx「,」params「:{」ttl「:864000}}」;在手錶註冊時,它在響應中返回了正確的到期日期,但是在一小時後它會超時 – PNC

0

我也一直在日曆API中的這個明顯的錯誤困擾。經過兩天的測試我已經發現了以下內容:

  1. 此錯誤似乎只當你看體現()使用服務帳戶(這一直是谷歌Apps Marketplace中的應用程序的情況下)的日曆。我只測試了看輔助日曆,所以在觀看主日曆時我無法確認問題是否存在。

  2. 如果您包含「params」:{「ttl」:172800},您將收到一個返回信道,並且從現在開始設置爲期2天的過期標題。但是,通知將在1小時後停止發送,表示該頻道已被刪除,並且Google日曆無法正確保證到期。

  3. 如果您包含「params」:{「ttl」:172800}並從常規oAuth2流中觀看()具有正常訪問令牌的日曆,那麼將使用指定的到期時間創建該通道,並按預期發送通知直到到期。無論您是在觀看Gmail帳戶的日曆還是Google App帳戶的日曆,只要您使用常規的OAuth2而非服務帳戶即可。

  4. 我嘗試使用無證

-

body = { "expiration" : MILLISECONDS_SINCE_EPOCH, ....}. 

代替

body = { "params": { "ttl" : 172800 }, ....}. 

這就是谷歌API的Python客戶端庫使用與它沒有任何效果。渠道是使用正確的到期創建的,但在使用服務帳戶一小時後過期。

這是一個特別糟糕的錯誤,因爲它看起來是一個正確創建的通道,但它提前到期,並且您無法驗證某個特定資源的哪些通道處於活動狀態。

到目前爲止我唯一想到的解決方法是在一小時後更新每個頻道。這不是一個長期的解決方案。我將每天使用超過30萬次API調用,以保持頻道活躍,這是我的配額中的一大塊。如果事情正常,我只需要每週更新一次頻道,而不是一天24次。

+0

是的,我同意你說的所有話。我只使用服務帳戶並具有相同的行爲。我們使用通知渠道的原因是爲了減少API調用,因此不能刷新所有渠道。我假設這是一個錯誤,因爲通知的目的是停止輪詢。 Google支持部門正在慢慢解決此問題。 – PNC

+0

保羅 - 如果您在支持請求中得到任何更新,如果您可以在這裏發佈,那就太棒了。我還向企業支持提交了一個案例,並會在我收到回覆時進行報告。 -Cameron – hennekec

+0

我也在Apps API的公共問題跟蹤器上提交了這個錯誤。 https://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=3542 – hennekec