2017-03-17 1 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

Jeffrey의 답변은 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 클라우드 서비스에 인증 할 수있는 방법

+0

을 참조하십시오. ToChannelCredentials()의 출처는 어디입니까? 분명히 참조가 없거나 다른 버전입니다. – Colin

+1

나는 그것을 이해했다. 확장 메서드를 얻으려면 네임 스페이스 Grpc.Auth를 참조해야했습니다. – Colin

+0

또한 Grpc.Auth Nuget 패키지를 설치해야합니다. –

관련 문제