Google API

Google APIs 套件 公開了數十項 Google 服務,您可以從 Dart 專案使用這些服務。

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

使用者資料 API 的範例包括 CalendarGmailYouTube 和 Firebase。

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

概觀

若要使用 Google API,請遵循下列步驟

  1. 選擇所需的 API
  2. 啟用 API
  3. 使用必要的範圍驗證使用者
  4. 取得經過驗證的 HTTP 伺服器
  5. 建立並使用所需的 API 類別

1. 選擇所需的 API

package:googleapis 的文件以 name_version 格式將每個 API 列為一個獨立的 Dart 函式庫。請查看 youtube_v3 作為範例。

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

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

/// 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 身分驗證使用者。針對你想要支援的每個平台設定登入。

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

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

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

請遵循 package:google_sign_in 提供的說明,以允許使用者驗證。

驗證後,你必須取得經過驗證的 HTTP 伺服器。

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

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

import 'package:extension_google_sign_in_as_googleapis_auth/extension_google_sign_in_as_googleapis_auth.dart';

新增一個監聽器至 onCurrentUserChanged,當事件值不為 null 時,您可以建立一個已驗證的用戶端。

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

這個 Client 執行個體在呼叫 Google API 類別時包含必要的憑證。

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

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

var youTubeApi = YouTubeApi(httpClient);

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

更多資訊

您可能想要查看以下內容