2015年9月10日 星期四

Outlook 2010同步Googled日曆@VisualStudio2013C#

本來所有信箱行事曆都統合在Google上搞定,但公司資安調整所以只好拉回Outlook上來作,同步Google信箱、日曆、聯絡等...其實網路上都有現成的可以抓來用,但整合性並非我想要的結果,於是想來自己搞搞看,就先從日曆開始吧 ...

看大家也都是從Outlook巨集下手,開發工具Visual Studio就免不了了,能用VB及C#兩種語言,當然選C#嘍 ...

Visual Studio 2013安裝完記得要更新,不然會有讓人搞不清楚的Bug(無法以 "SignFile" 工作的輸入參數初始化此工作)一直跳出來,另外2010的範本也要另外裝才行,用2013的增益集不能裝到2010的Outlook上orz ...
  • 首先取得Google OAuth 2.0 用戶端 ID
先到Google Developers Console建立專案啟用Calendar Api,再新增憑證設定OAuth 2.0的畫面資訊後,下載取得OAuth ID的JSON檔案放到Outlook路徑下 (C:\Program Files\Microsoft Office\Office14)
  • 新增Outlook 2010增益集專案
  • 安裝Google日曆Api套件
在Visual Studio 2013開啟NuGet主控台(工具->NuGet套件管理員->套件管理器主控台),輸入以下指令:Install-Package Google.Apis.Calendar.v3

準備工作完成後就可以開始寫code了,裡頭的code都是從網路上拼拼湊湊出來的,我想把Google Service獨立成一隻class應該會比較好寫...

另外記得去 Outlook 選項->自訂功能區 把開發人員打勾,這樣才能管理巨集...

開發時權限可能隨時作調整但OAuth2.0會記住第一次授權時的權限,所以就要到管理頁去移除連結才能再以新權限授權,連結Google的應用程式管理要到https://myaccount.google.com/的(已連結的網站與應用程式) ...

以上紀錄開發時遇到的問題,雖然看起來沒什麼,但有時卡關就會卡很久,像遇到哪個"無法以 "SignFile" 工作"的Bug,讓我就一度放棄,過了二週後比較有空閒又想到來問股溝大神,這才下對關鍵字找到解答,也才有辦法繼續走下去 ...


參考資料:
https://msdn.microsoft.com/en-us/library/office/bb612741.aspx
https://developers.google.com/google-apps/calendar/quickstart/dotnet
https://developers.google.com/google-apps/calendar/v3/reference/events/list

沒有留言:

張貼留言