C# 使用 Google API 處理 Google 雲端硬碟(上)-設定篇

參考資料

 

使用 OAuth 2.0 存取 Google API

https://developers.google.com/identity/protocols/oauth2?hl=zh-tw

 

透過 .NET 輕鬆存取 Google API

https://developers.google.com/api-client-library/dotnet?hl=zh-tw

 

Drive API

https://developers.google.com/drive/?hl=zh-tw

 

Namespace Google.Apis.Drive.v3

https://googleapis.dev/dotnet/Google.Apis.Drive.v3/latest/api/Google.Apis.Drive.v3.html

 

取得憑證

 

註冊並登錄 https://console.cloud.google.com/

 

左上角下拉專案

 

image


 

點選「新增專案」

 

image



 

建立專案名稱

 

image

 

 

選擇要支援的程式庫

 

image

 

因為這次要處理的是 Google 雲端硬碟的資料,所以選 Google Drive API

 

image

 

如果還沒啟用,請啟用它。

 

image

 

取得憑證

 

選「API和服務」的「憑證」

 

image

 

憑證有三種:

 

image

 

ChatGPT 3.5 解釋憑證:

 

根據您的目的,您需要使用OAuth 2.0 用戶端 ID憑證。OAuth 2.0 用戶端 ID憑證是用於訪問用戶的Google帳戶數據和Google Drive等Google服務的適當選擇。這種憑證用於實現用戶授權和訪問權限,並確保您的應用程式可以安全地訪問和操作用戶的Google Drive目錄。

以下是一些憑證類型的簡要說明:

  • API 金鑰:主要用於對Google API端點的無身份驗證訪問,不適用於訪問用戶的Google Drive。
  • OAuth 2.0 用戶端 ID:適用於實現用戶授權,並使您的應用程式能夠代表用戶訪問其Google Drive。
  • 服務帳戶:通常用於服務對服務的通信,而不是用戶的帳戶。對於您的情況,OAuth 2.0 用戶端 ID更適合,因為您要讓用戶存儲他們自己的資料。

因此,請選擇OAuth 2.0 用戶端 ID,並在使用Google Drive API時使用它來實現您的需求,以允許用戶在他們自己的雲端空間中存儲自己的資料,就像雲端書籤或程式設定檔一樣。

 

也看到網路上有人說明:

 

OAuth適合需要使用者登入、檔案會存放於使用者自己的雲端硬碟。

服務帳戶會將檔案存放於服務帳戶可存取(開發者)的雲端硬碟中。


 

建立憑證,選 OAuth 用戶端 ID

 

image

 

結果說要先設定同意畫面

 

image

 

設定同意畫面

 

image

 

上傳應用程式的標誌

 

image

 

這個不知道有什麼作用,先寫公司官網好了。

 

image

 

同上

 

image

 

寫自己的 email

 

image

 

這裡要設定程式索取權限的範圍

 

image

 

我只要處理程式建立的目錄與檔案,不會動到使用者其它的資料,相對安全許多,未來也不用經過嚴格的認證。

 

image

 

這就是我選的二項非機密圍的權限

 

image

 

也可以加第三項,紅色那一項,就可以處理我自己的雲端硬碟全部資料了,但也僅限開發者的我自己,也許可以寫一些有用的小工具,例如列出指定目錄下的所有檔案。


 

image

 

加上測試者的 email,才能在不驗證程式的情況下測試程式。

 

image

 

完成後,可以回到建立憑證了。


 

image

 

因為我是用在 C# 寫的單機版程式,所要選「電腦版應用程式」,至於名稱就沒差了。

 

image

 

應用程式類型有這些。

 

image

 

完成後會看到一些資料,請按最底下的「下載 JSON」,程式會用到。

 

image

 

底下紅框可以再次查看上面的畫面,以取得「用戶端編號」、「用戶端密鑰」及「下載 JSON」。

 

image

 

Visual Studio 設定授權

 

底下是我在 Visual Studio 使用 NuGet 安裝的套件,而 Newtonsoft.Json 是其中一個套件自己帶進去的。

 

原本 JSON 我是想用 System.Text.Json,這是 C# 新加入的,架構版本早於 .NET Core 3.0 要另外安裝,我用的版本 .NET Framework 4.7.2 還沒有內建,因此需要額外安裝,想不到現在又裝一套 Newtonsoft.Json 進來了。

 

image

 

建立一個新項目

 

image

 

選擇 TypeScript JSON 組態檔,檔名設為 client_id.json

 

image

 

把之前下載的 JSON 檔貼上去

 

image

 

此檔的「複製到輸出目錄」屬性請設定「一律複製」

 

image

 

至此,基本的設定已經完成,再來就是程式的處理了。

 
重要度:
文章分類:

發表新回應

借我放一下廣告