跳至主要內容

Google API

Google APIs 套件公開了數十種 Google 服務,您可以在 Dart 專案中使用它們。

本頁說明如何使用透過 Google 驗證與終端使用者資料互動的 API。

使用者資料 API 的範例包括 行事曆GmailYouTube 和 Firebase。

若要明確將驗證新增至 Firebase,請查看使用 FirebaseUI 將使用者驗證流程新增至 Flutter 應用程式程式碼實驗室和開始使用 Flutter 上的 Firebase 驗證文件。

概觀

#

若要使用 Google API,請依照下列步驟操作

  1. 選擇所需的 API
  2. 啟用 API
  3. 使用所需範圍驗證使用者身分
  4. 取得已驗證的 HTTP 用戶端
  5. 建立並使用所需的 API 類別

1. 選擇所需的 API

#

package:googleapis 的文件會將每個 API 列為個別的 Dart 程式庫 &emdash; 以 name_version 格式。 查看 youtube_v3 作為範例。

每個程式庫可能會提供許多類型,但有一個以 Api 結尾的類別。 對於 YouTube,它是 YouTubeApi

Api 類別不僅是您需要實例化的類別(請參閱步驟 3),它還會公開代表使用 API 所需權限的範圍。 例如,YouTubeApi 類別的 常數區段會列出可用的範圍。 若要請求存取權以讀取(但無法寫入)終端使用者的 YouTube 資料,請使用 youtubeReadonlyScope 驗證使用者身分。

dart
/// Provides the `YouTubeApi` class.
import 'package:googleapis/youtube/v3.dart';

2. 啟用 API

#

若要使用 Google API,您必須擁有 Google 帳戶和 Google 專案。 您還需要啟用所需的 API。

此範例啟用YouTube Data API v3。 如需詳細資訊,請參閱入門指示

3. 使用所需範圍驗證使用者身分

#

使用 google_sign_in 套件,使用使用者的 Google 身分驗證使用者。 為您要支援的每個平台設定登入。

dart
/// Provides the `GoogleSignIn` class
import 'package:google_sign_in/google_sign_in.dart';

在實例化 GoogleSignIn 類別時,請提供上一節討論的所需範圍。

dart
final _googleSignIn = GoogleSignIn(
  scopes: <String>[YouTubeApi.youtubeReadonlyScope],
);

請依照 package:google_sign_in 提供的指示,允許使用者進行驗證。

驗證後,您必須取得已驗證的 HTTP 用戶端。

4. 取得已驗證的 HTTP 用戶端

#

extension_google_sign_in_as_googleapis_auth 套件在 GoogleSignIn 上提供一個 擴充方法,稱為 authenticatedClient

dart
import 'package:extension_google_sign_in_as_googleapis_auth/extension_google_sign_in_as_googleapis_auth.dart';

將接聽程式新增至 onCurrentUserChanged,當事件值不是 null 時,您可以建立已驗證的用戶端。

dart
var httpClient = (await _googleSignIn.authenticatedClient())!;

Client 實例包含叫用 Google API 類別時的必要憑證。

5. 建立並使用所需的 API 類別

#

使用 API 建立所需的 API 類型並呼叫方法。 例如

dart
var youTubeApi = YouTubeApi(httpClient);

var favorites = await youTubeApi.playlistItems.list(
  ['snippet'],
  playlistId: 'LL', // Liked List
);

更多資訊

#

您可能想查看以下內容