gpt4 book ai didi

dart - 如何在 Flutter 中使用 Google API?

转载 作者:IT老高 更新时间:2023-10-28 12:32:03 26 4
gpt4 key购买 nike

我想在我的 Flutter 应用中使用 Google Cloud Natural Language,我得到了 Google API package这适用于 flutter 和 Google API_AUTH依赖适用于 0.2.1。如何实现它们?

最佳答案

这对我有用:

使用包 google_sign_in 登录,然后从中获取身份验证 header :

import 'package:google_sign_in/google_sign_in.dart'
show GoogleSignIn, GoogleSignInAccount;

import 'package:googleapis/people/v1.dart'
show ListConnectionsResponse, PeopleApi;

useGoogleApi() async {
final _googleSignIn = new GoogleSignIn(
scopes: [
'email',
'https://www.googleapis.com/auth/contacts.readonly',
],
);

await _googleSignIn.signIn();

final authHeaders = _googleSignIn.currentUser.authHeaders;

// custom IOClient from below
final httpClient = GoogleHttpClient(authHeaders);

data = await PeopleApi(httpClient).people.connections.list(
'people/me',
personFields: 'names,addresses',
pageToken: nextPageToken,
pageSize: 100,
);
}

这是一个自定义的 IOClient 实现,它会自动将 auth header 添加到每个请求中。 googleapis 调用支持传递要使用的自定义 HTTP 客户端而不是默认客户端(见上文)

import 'package:http/io_client.dart';
import 'package:http/http.dart';

class GoogleHttpClient extends IOClient {
Map<String, String> _headers;

GoogleHttpClient(this._headers) : super();

@override
Future<StreamedResponse> send(BaseRequest request) =>
super.send(request..headers.addAll(_headers));

@override
Future<Response> head(Object url, {Map<String, String> headers}) =>
super.head(url, headers: headers..addAll(_headers));

}

关于dart - 如何在 Flutter 中使用 Google API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48477625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com