5 votes

Est-il possible de fournir manuellement un GoogleCredential à SpeechClient (dans l'API .NET) ?

Toute la documentation pour SpeechClient que j'ai trouvée implique soit d'exécuter une commande après avoir téléchargé le SDK, soit de configurer maladroitement une variable d'environnement "GOOGLE_APPLICATION_CREDENTIALS" pour pointer vers un fichier de certificat local.

Je déteste l'approche de la variable d'environnement, et je préfère une solution qui charge un fichier de compte de développement partagé, contrôlé par la source, depuis la racine de l'application. Quelque chose comme ceci :

var credential = GoogleCredential.FromStream(/*charger un fichier partagé depuis la racine de l'application*/);
var client = SpeechClient.Create(/*J'aimerais pouvoir passer les informations d'identification ici*/);

Y a-t-il un moyen de faire cela pour ne pas avoir à dépendre de la variable d'environnement ?

13voto

Jeffrey Rennie Points 1543

Oui, en convertissant le GoogleCredential en ChannelCredentials, et en utilisant cela pour initialiser un Channel, que vous enveloppez ensuite dans un SpeechClient:

using Grpc.Auth;

//...

GoogleCredential googleCredential;
using (Stream m = new FileStream(credentialsFilePath, FileMode.Open))
    googleCredential = GoogleCredential.FromStream(m);
var channel = new Grpc.Core.Channel(SpeechClient.DefaultEndpoint.Host,
    googleCredential.ToChannelCredentials());
var speech = SpeechClient.Create(channel);

Mise à jour le 2018-02-02 https://cloud.google.com/docs/authentication/production affiche désormais toutes les façons possibles pour s'authentifier à un service Google Cloud, incluant un exemple comme celui-ci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X