Google API
The Google APIs package 公开了数十种 Google 服务,您可以在 Dart 项目中使用这些服务。
此页面介绍如何使用与最终用户数据交互的 API,方法是使用 Google 身份验证。
用户数据 API 的示例包括 日历、Gmail、YouTube 和 Firebase。
要显式地向 Firebase 添加身份验证,请查看 使用 FirebaseUI 将用户身份验证流程添加到 Flutter 应用程序 代码实验室和 在 Flutter 上开始使用 Firebase 身份验证 文档。
概述
#要使用 Google API,请按照以下步骤操作
- 选择所需的 API
- 启用 API
- 使用所需的范围对用户进行身份验证
- 获取经过身份验证的 HTTP 客户端
- 创建并使用所需的 API 类
1. 选择所需的 API
#package:googleapis 的文档将每个 API 列为一个单独的 Dart 库,格式为 name_version
。查看 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 数据 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
);
更多信息
#您可能想要查看以下内容
extension_google_sign_in_as_googleapis_auth
示例 是此页面上所述概念的工作实现。
除非另有说明,否则本网站上的文档反映了 Flutter 的最新稳定版本。页面上次更新于 2024-04-08。 查看源代码 或 报告问题。