2012-08-13 91 views
2

我正在編寫一個小型客戶端,以將計算機上的Outlook日曆與用戶的Google日曆同步。我正在使用.Net(C#)。 我剛剛閱讀了關於使用Google API的Google API客戶端庫訪問Google Calendar API並嘗試了一些基本的東西。使用用戶名/密碼訪問Google Calendar API

關於授權,據我瞭解,新的「OAuth 2.0」授權要求「用戶同意」,這意味着用戶被定向到一個谷歌頁面,他們必須明確允許我的應用程序訪問他們的日曆。 就像這個用戶交互不夠,我作爲程序員必須處理「訪問令牌」或「刷新令牌」等所有東西。

現在我的問題是: 真的沒有更簡單的方法讓安裝的應用程序與谷歌API通信來訪問用戶的日曆嗎?

我希望我的用戶在「設置」對話框中輸入他的用戶名/密碼。他的憑證將存儲在本地(當然是加密),然後稍後在通過谷歌API訪問時使用。我知道這可能是危險的,但是我希望那個決定能夠與我同在。

那麼,這可能嗎?

回答

2

不,這是不可能的。 OAuth的整點是用戶永遠不會向第三方(您)提供他們的用戶名和密碼。您唯一能得到的是一個令牌,它允許您隨時連接用戶可以撤銷的連接。 (如果用戶更改密碼,仍然可以使用相同的已保存令牌並且不需要讓用戶更新其設置)。

如果您決定通過保存用戶名和密碼並自行執行「授權」來解決此問題,您將違反API的服務條款,並且會禁止Google(或任何OAuth提供商如果你與其他人一起嘗試)不遵守規則。

+0

謝謝。不,我不想爲此工作。如果這就是它應該如何完成的,那就這樣吧。 但是用戶需要多長時間才能訪問?這有可能只做一次嗎? – user1595494 2012-08-13 14:25:24

+0

是的,你做了一次,然後你保存它在磁盤上給你的令牌,當你再次嘗試連接時,首先嚐試舊的令牌,並且如果你得到一個錯誤代碼(由於它已經過期或撤銷),然後您再次提示授權。大多數情況下,您只需要申請一次授權。 – 2012-08-13 14:32:32

+0

謝謝!在C#中如何做到這一點有什麼例子(在用戶同意後獲取令牌)。我只找到了如何建立連接的例子。 – user1595494 2012-08-14 05:20:47

相關問題