Google speech api 使用不带json文件的Google应用程序默认凭据

Google speech api 使用不带json文件的Google应用程序默认凭据,google-speech-api,google-cloud-speech,Google Speech Api,Google Cloud Speech,我已经用c#创建了一个控制台应用程序。我使用谷歌云语音api。我按照示例应用程序创建应用程序。 为了验证语音api,我在main方法中编写了以下代码 Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "path-to-json-file", EnvironmentVariableTarget.Process); 一切正常。我的问题是,我必须将exe与json文件一起发送。我不想公开json文件。如何在没有j

我已经用c#创建了一个控制台应用程序。我使用谷歌云语音api。我按照示例应用程序创建应用程序。 为了验证语音api,我在main方法中编写了以下代码

Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "path-to-json-file", EnvironmentVariableTarget.Process);
一切正常。我的问题是,我必须将exe与json文件一起发送。我不想公开json文件。如何在没有json文件的情况下将json文件内容嵌入代码或进行身份验证? 因此,我只能将exe发送给用户

在此方面的任何帮助都将不胜感激


谢谢。

您可以加密存储密钥文件,然后在应用程序启动时解密该文件,并在几毫秒内(读取内容并初始化后)重写解密后的内容


另一个解决方案可以是从服务器抓取(加密)并存储在应用程序变量(解密)中,然后用该变量初始化,然后在初始化后删除文件。

对于存储api,我发现了以下解决方案:

 Google.Apis.Auth.OAuth2.GoogleCredential cred = Google.Apis.Auth.OAuth2.GoogleCredential.FromJson(JSONString);
 var storage = Google.Cloud.Storage.V1.StorageClient.Create(cred);

我可以很容易地想象其他api也可以这样做,但是如何使用存储在应用程序变量中的凭据进行身份验证?我不想将其写入json文件,让API读取它,然后再次删除json文件,这真的很难看。@Calvin先生如果你知道更好的解决方案,请告诉我,我也在搜索。我可能最终将json序列化为代码,加密
私钥
,然后将其序列化回文件。但让我们看看是否有人有更好的解决方案;-)在我找到这个帖子之前,我问了一个类似的问题(很抱歉重复),答案与这个问题无关。它不回答如何在没有必须解密的json文件的情况下提供凭据。@Rambalac有趣;)德国劳埃德船级社