dart - ¿Cómo usar la API de Google en flutter?
(2)
Esto funcionó para mí:
Inicie sesión con el paquete
google_sign_in
y luego obtenga los encabezados de autenticación:
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;
final httpClient = new GoogleHttpClient(authHeaders);
data = await new PeopleApi(httpClient).people.connections.list(
''people/me'',
personFields: ''names,addresses'',
pageToken: nextPageToken,
pageSize: 100,
);
}
Esta es una implementación personalizada de
IOClient
que agrega automáticamente los encabezados de autenticación a cada solicitud.
El soporte de llamadas de googleapis pasa un cliente HTTP personalizado para ser utilizado en lugar del predeterminado (ver arriba)
import ''package:http/http.dart''
show BaseRequest, IOClient, Response, StreamedResponse;
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));
}
Quiero usar Google Cloud Natural Language en mi aplicación Flutter, obtuve el paquete API de Google Esto funciona para flutter y la dependencia Google API_AUTH funciona para 0.2.1. ¿Cómo los implemento?
Todavía no puedo agregar comentarios, así que lo publicaré como un comentario.
Seguí intentando crear un GoogleHttpClient según la respuesta principal, pero en la importación, dice "El paquete de la biblioteca: http / http.dart" no exporta un miembro con el nombre que se muestra "IOClient".
Encontré la respuesta aquí
https://pub.dartlang.org/packages/http#-changelog-tab-
, que dice que debe importar IOClient por separado como tal:
import ''package:http/io_client.dart'';
Pensé que esto podría ayudar a otros que son nuevos en el aleteo y su implementación de las API de Google.