2013-07-05 92 views
0

我需要從我們的數據存儲區(App Engine應用程序)中的數據寫入Google日曆。如何通過Google Calendar API(v3)寫入我們自己的日曆

我想通過OAuth訪問2.

閱讀是沒有問題的 - 日曆是公開的,我只是用簡單的API訪問方法。

寫作是一個「問題」 - 顯然我需要驗證。但是,日曆由應用管理員擁有,我們希望以後臺任務的形式寫入日曆 - 無需用戶交互。

我已經瀏覽了所有Google的文檔,但我覺得沒有什麼更明智的 - 我怎樣才能通過V3 API對Google日曆進行永久性寫入訪問的一次性設置?

+0

您想添加到Google日曆中的附加功能是什麼? – Raptor

+0

附加功能?我想寫日曆 - 以編程方式將事件寫入日曆。 – pwalsh

回答

0

爲了使無需用戶交互代表你的App Engine應用程序的調用,你應該使用的應用程序識別模塊: https://developers.google.com/appengine/docs/python/appidentity/

如果您使用的是谷歌API客戶端庫,使用AppAssertionCredentials對象將做到這一點自動爲您: https://developers.google.com/api-client-library/python/guide/google_app_engine#ServiceAccounts

注意以下幾點:

  1. 你可能仍然需要提供日一個簡單的密鑰,以便將配額使用歸因於正確的項目。

  2. 在本地App Engine開發過程中,App Identity模塊不會工作 - 您需要部署到生產環境中才能獲得有效憑據。

  3. 您將需要使用與App Engine應用程序的服務帳戶關聯的電子郵件地址來共享您正在寫入的日曆。要查找此電子郵件地址,請轉到App Engine管理控制檯 - >「應用程序設置」並查找服務帳戶電子郵件。

最後,我並不是100%確定Calendar API允許服務帳戶直接訪問,但您應該嘗試一下。如果這不起作用,替代方案可能是爲有權訪問日曆的真實用戶生成刷新令牌,然後查看將其嵌入到應用程序中 - 服務帳戶方法更可取,所以我會先嚐試。

+0

嗨!好吧,這看起來不錯,但是你的觀點2是一個絕對的殺手 - 我無法在本地開發中測試它! 我調整了我的代碼以使用AppAssertionCredentials對象,是的,當我實際嘗試寫入時,現在我得到一個新的「無效憑證」錯誤。設置一個分段來測試。 – pwalsh

+0

好吧,確認在分段服務器上工作。這很棒!我絕對是在google oauth2文檔上打破我的頭腦。我只是沒有看到應用引擎有額外的助手類,尤其是像谷歌到谷歌服務這樣的輔助類。 – pwalsh

相關問題