2017-03-17 8 views
1

私が見つけたSpeechClientのドキュメントには、SDKをダウンロードした後にコマンドラインを実行するか、 "GOOGLE_APPLICATION_CREDENTIALS"環境変数を設定してローカルの資格情報ファイルを指すようにすることが含まれます。GoogleCredentialをSpeechClient(.NET API)に手動で供給することは可能ですか?

私は環境変数のアプローチを嫌い、その代わりにアプリケーションのルートからソース管理の共有されたdevアカウントファイルを読み込むソリューションが必要です。このようなもの:

var credential = GoogleCredential.FromStream(/*load shared file from app root*/); 
var client = SpeechClient.Create(/*I wish I could pass credential in here*/); 

私は環境変数に頼る必要はありませんか?

+0

ジェフリーの回答と同様に、https://googlecloudplatform.github.io/google-cloud-dotnet/docs/faq.html –

答えて

10

はい、ChannelCredentialsGoogleCredentialを変換し、あなたがしてSpeechClientでラップChannelを、初期化することを使用して:

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); 

アップデート2018年2月2日https://cloud.google.com/docs/authentication/production今、彼らはすべてを示しますこのようなサンプルを含む、Google Cloud Serviceへの認証方法

+0

を参照してください。ToChannelCredentials()はどこから来ていますか?私は明らかに参照がないか、別のバージョンにあります。 – Colin

+1

私はそれを理解しました。私は拡張メソッドを得るために名前空間Grpc.Authを参照しなければならなかった。 – Colin

+0

また、Grpc.Auth Nugetパッケージをインストールする必要があります。 –

関連する問題