探討 :: Google API 認證與授權
- 一個開發人員可以在 Google Console 建立多個 API 專案 (API Project) .
- 一個 API 專案
- 控制要啟用哪些 Google APIs , 不同專案可以啟用不同 Google APIs .
- 只有一個 OAuth consent screen
- 可以建立多個憑證 (Credential) , 憑證是用來讓 Google API Server 認證與授權你的應用程式 . 為什麼需要多個憑證呢 ? 在一個軟體專案裡面可能會有產出多種形式的應用程式 , Web 是一種形式 , Mobile App 是另一種形式 . 不同形式的應用程式在認證與授權時所需要的憑證類型不同 , 即使是相同形式的應用程式 , 也可能因為其他考量個別使用獨立的憑證 .
- 憑證的類型
- API Key , for APIs like Google Translate , 用在存取非資料型API時
- Server Key
- Browser Key
- Android Key
- iOS Key
- OAuth client ID , for APIs like Google Calendar, 用在存取使用者資料時 , 需要使用者介入 , 存取資料時是 your app -> user consent -> user data
- Web application
- Android
- Chrome App
- iOS
- PlayStation 4
- Other , 這是目前我主要用的憑證類型 .
- Service account key , for use with Google Cloud APIs , 用在存取使用者資料或應用程式資料時 , 需要事先建立一個 service account , 存取資料時是 your service -> authorization -> google service
- JSON
- P12
- API Key , for APIs like Google Translate , 用在存取非資料型API時
參考資料
從頭建立一個 OAuth clien ID :: Other 類型的憑證步驟
- 建立一個 API 專案
- 輸入專案名稱後自動產生專案ID , 例如 pythonmemo , pythonmemo-1272
- 設定 OAuth consent screen
- 輸入產品名稱 , 例如 PythonMemo
- 建立一個憑證
- 輸入憑證名稱自動產生 client ID 和 client scecret , 例如 python-memo , 可以隨時下載另存成 client_secret.json 檔案 .