參考資料
使用 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/
左上角下拉專案
點選「新增專案」
建立專案名稱
選擇要支援的程式庫
因為這次要處理的是 Google 雲端硬碟的資料,所以選 Google Drive API
如果還沒啟用,請啟用它。
取得憑證
選「API和服務」的「憑證」
憑證有三種:
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
結果說要先設定同意畫面
設定同意畫面
上傳應用程式的標誌
這個不知道有什麼作用,先寫公司官網好了。
同上
寫自己的 email
這裡要設定程式索取權限的範圍
我只要處理程式建立的目錄與檔案,不會動到使用者其它的資料,相對安全許多,未來也不用經過嚴格的認證。
這就是我選的二項非機密圍的權限
也可以加第三項,紅色那一項,就可以處理我自己的雲端硬碟全部資料了,但也僅限開發者的我自己,也許可以寫一些有用的小工具,例如列出指定目錄下的所有檔案。
加上測試者的 email,才能在不驗證程式的情況下測試程式。
完成後,可以回到建立憑證了。
因為我是用在 C# 寫的單機版程式,所要選「電腦版應用程式」,至於名稱就沒差了。
應用程式類型有這些。
完成後會看到一些資料,請按最底下的「下載 JSON」,程式會用到。
底下紅框可以再次查看上面的畫面,以取得「用戶端編號」、「用戶端密鑰」及「下載 JSON」。
Visual Studio 設定授權
底下是我在 Visual Studio 使用 NuGet 安裝的套件,而 Newtonsoft.Json 是其中一個套件自己帶進去的。
原本 JSON 我是想用 System.Text.Json,這是 C# 新加入的,架構版本早於 .NET Core 3.0 要另外安裝,我用的版本 .NET Framework 4.7.2 還沒有內建,因此需要額外安裝,想不到現在又裝一套 Newtonsoft.Json 進來了。
建立一個新項目
選擇 TypeScript JSON 組態檔,檔名設為 client_id.json
把之前下載的 JSON 檔貼上去
此檔的「複製到輸出目錄」屬性請設定「一律複製」
至此,基本的設定已經完成,再來就是程式的處理了。
- 瀏覽次數:2394
發表新回應