有使用lib的C#示例client-libraries-usage-csharp。
并且有示例如何设置环境变量
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/[FILE_NAME].json">
如何在不设置环境变量的情况下将谷歌语音到文本的凭据设置?
不知何故像这样:
变量凭据 = ...创建(file.json(; var speech = SpeechClient.Create(credentials(;
using Grpc.Auth;
然后
string keyPath = "key.json";
GoogleCredential googleCredential;
using (Stream m = new FileStream(keyPath, FileMode.Open))
googleCredential = GoogleCredential.FromStream(m);
var channel = new Grpc.Core.Channel(SpeechClient.DefaultEndpoint.Host,
googleCredential.ToChannelCredentials());
var speech = SpeechClient.Create(channel);
除非您在 GCP 服务上运行应用程序,否则除了设置环境变量之外,没有其他方法可以获取客户端库的服务帐户凭据。
GCP 客户端库使用称为应用程序默认凭据 (ADC( 的策略来查找应用程序的凭据。
默认情况下,客户端库将使用环境变量指向的 JSON。如果未找到 JSON,但您的应用在 App Engine、Compute Engine 或 Kubernetes Engine 上运行,则您的应用将使用默认服务帐号的凭据(例如,如果您的应用在 App Engine 上运行,则使用 App Engine 默认服务帐号(。
SpeechClient.Create(( 在 2.7.0 版中不再支持参数凭据,但我找到了以下解决方案:
var client = new SpeechClientBuilder { JsonCredentials = "..." }.Build()
JsonCredentials接受包含json内容的字符串。