實作 OAuth 2.0 授權

YouTube Reporting APIYouTube Analytics API 支援 OAuth 2.0 通訊協定,可用於授權存取使用者私人資料。 下列清單說明一些核心 OAuth 2.0 概念:

  • 當使用者首次嘗試使用應用程式中的功能,而該功能需要使用者登入 Google Account or YouTube account 時,應用程式會啟動 OAuth 2.0 授權程序。

  • 應用程式會將使用者導向 Google 的授權伺服器。該網頁的連結會指定應用程式要求存取使用者帳戶的 scopescope 會指定應用程式以已驗證使用者身分時,擷取、插入、更新或刪除的資源。

  • 如果使用者同意授權您的應用程式存取這些資源,Google 就會將權杖傳回您的應用程式。視應用程式的類型而定,它會驗證憑證,或交換成不同類型的權杖。

    舉例來說,伺服器端網頁應用程式會將傳回的權杖交換給存取權杖和更新權杖。存取權杖可讓應用程式代表使用者授權要求,而更新權杖可讓應用程式在原始存取權杖過期時擷取新的存取權杖。

重要事項:如要使用 OAuth 2.0 授權,您必須在 Google API 控制台中取得授權憑證

詳情請參閱 OAuth 2.0 授權指南

OAuth 2.0 流程

Google API 支援多種 OAuth 2.0 使用案例:

  • 伺服器端網頁應用程式流程支援可安全儲存持續性資訊的網頁應用程式。
  • JavaScript 網頁應用程式流程支援在瀏覽器中執行的 JavaScript 應用程式。
  • 行動版和電腦版應用程式流程支援安裝在手機或電腦等裝置上安裝的應用程式。
  • 適用於電視和有限輸入裝置的 OAuth 2.0 流程支援輸入功能有限的裝置,例如遊戲主機和影片攝影機。The YouTube Reporting and YouTube Analytics APIs do not currently support the OAuth 2.0 flow for devices.
  • 服務帳戶流程的 OAuth 2.0 流程支援不需存取使用者資訊的伺服器對伺服器互動。 不過,YouTube Reporting APIYouTube Analytics API 不支援這個流程。 Since there is no way to link a Service Account to a YouTube account, attempts to authorize requests with this flow will generate an error.

找出存取權範圍

範圍可讓應用程式僅要求存取其需要的資源,也能讓使用者控制對應用程式授予的存取量。因此,要求的範圍數量與取得使用者同意的可能性之間可能呈現反比關係。

開始實作 OAuth 2.0 授權之前,建議您找出應用程式需要權限存取的範圍。

YouTube Analytics API 會使用下列範圍:

Scopes
https://www.googleapis.com/auth/youtubeManage your YouTube account
https://www.googleapis.com/auth/youtube.readonlyView your YouTube account
https://www.googleapis.com/auth/youtubepartnerView and manage your assets and associated content on YouTube
https://www.googleapis.com/auth/yt-analytics-monetary.readonlyView monetary and non-monetary YouTube Analytics reports for your YouTube content
https://www.googleapis.com/auth/yt-analytics.readonlyView YouTube Analytics reports for your YouTube content

YouTube Reporting API 會使用下列範圍:

範圍
https://www.googleapis.com/auth/yt-analytics-monetary.readonly查看您 YouTube 內容的金額和非金額 YouTube 數據分析報表
https://www.googleapis.com/auth/yt-analytics.readonly查看您 YouTube 內容的 YouTube 數據分析報表

OAuth 2.0 API 範圍文件完整列出了可用於存取 Google API 的範圍。