2021年7月6日 星期二

技術筆記:Google API , Blogger V3 with C#


Google長久以來都有在開發和維護旗下眾多服務的API,參考連結。雖然許多人指責Google常常對這些服務始亂終棄,但整體看來仍有一半的服務能經年累月運作,並且撐起史上最龐大的軟體帝國。

數量實在太多,還改了版型

這次因為有個與Blogger相關想法要進行實驗,參考Google blogger API,並依照下面五個步驟進行。

一、選定使用服務,快速瀏覽該服務API是否符合需求。

以blogger為例(連結),API已經更新到V3版本,參考文件確認是否能滿足需求。較特別是每個指令旁,還有試試看的功能,能立刻在網頁上互動檢查結果。

同樣模式可以套用在docs上,如下圖。也可以用在drives等等,非常方便。

二、啟動服務並設定API金鑰。

因為整個API介面的操作方式都類似,Google目前將其整合在https://console.cloud.google.com/ 設定畫面如下,點選服務並啟用。(旁邊試用功能就會連結到上面一項畫面)。

基本上,第三方的軟體服務透過Google API存取內容時,都必須攜帶一個所謂的API金鑰。這組金鑰類似身分ID,Google可藉此控制程式服務的範圍,更重要是統計使用次數當作收費依據等。例如許多網站內嵌Google Maps就是利用這個模式。我的小程式非常隨意,簡單申請個API金鑰就進行下一步。

三、視情況申請OAuth。

上述API是Google與軟體服務間的協議,不牽涉個別使用者,但若軟體服務需要讀取個人資料,就必須引入新的協議OAuth。此時Google成為軟體服務和使用者間的中間人,負責顯示OAuth宣告畫面,以及使用者同意後進行後續憑證儲存作業,之後軟體服務要存取使用者資料時,便不需要一再確認。

以網站內嵌Google Maps為例,因為地圖資料是公共公開,每個人看到的都是相同畫面,類似這種情形僅需申請API金鑰即可。若是Blogger服務,若僅僅是要組合顯示任何人都能看到的貼文也不需要OAuth,唯有要進行修改、刪除等操作時才需要OAuth。另外要注意,不同服務透過OAuth開放的範圍會動態調整,可參考(連結)檢查是否符合自己需要。

正式申請過程可參考( 連結 連結 ),現階段僅允許自己使用不須審核即可使用。

四、撰寫程式(搭配套裝Library)。

理論上,熟悉Google API規範後就能夠用現行開發語言存取API內容(過程中需要填入API金鑰和OAuth編號),但大多數人都是選擇搭配的套裝Library,以目前C#為例,Blogger APIs Client Library for .NET,連結

有Java Python DotNet版本

安裝方式在VS 2017,開啟專案,在工具中找到NuGet主控台,執行Install-Package Google.Apis -Version 1.52.0就會安裝完畢。

程式為非同步執行緒,資料數量多時可分頁讀取,參考範例程式(連結 連結)。透過簡單做法就能取得大光漂浮天空的DRAFT列表、各草稿內容,分析處理後,產生新檔案並且更新伺服器上檔案內容。

五、程式過程分析。

若有個人資料需求,系統會自動透過Web瀏覽器彈出對應OAuth畫面如下。

經過使用者同意後,Token會自動存入本機目錄中,後續執行相同程式時,就不會再重複要求此權限資料。

小結:熟悉Blogger操作後,就能將此概念延伸到其他專案如Docs(連結),所以若是個充滿創意者,熟悉此類API架構,就能在Google基礎上,完成各種方便有趣的插件或系統。

沒有留言:

張貼留言