google dialogflow API中的C#身份验证错误

google dialogflow API中的C#身份验证错误,c#,api,asp.net-core,google-oauth,dialogflow-es,C#,Api,Asp.net Core,Google Oauth,Dialogflow Es,我该如何解决这个问题。我想在代码中而不是在计算机上设置身份验证。 我已经检查了几乎所有关于stackoverflow和github的答案,但没有一个有很好的解释 如何将凭据传递给create intent,它会抛出此错误 InvalidOperationException:应用程序默认凭据不可用。如果在谷歌计算引擎中运行,它们是可用的。否则,必须定义指向定义凭据的文件的环境变量GOOGLE\u APPLICATION\u CREDENTIALS。有关更多信息,请参阅 GoogleCredenti

我该如何解决这个问题。我想在代码中而不是在计算机上设置身份验证。 我已经检查了几乎所有关于stackoverflow和github的答案,但没有一个有很好的解释

如何将凭据传递给create intent,它会抛出此错误

InvalidOperationException:应用程序默认凭据不可用。如果在谷歌计算引擎中运行,它们是可用的。否则,必须定义指向定义凭据的文件的环境变量GOOGLE\u APPLICATION\u CREDENTIALS。有关更多信息,请参阅

GoogleCredential凭证=
GoogleCredential.FromFile(文件);
//var-credential=GoogleCredential.FromStream(
//Assembly.getExecutionGassembly().GetManifestResourceStream(“chatbot-a90a9-8f2fb910202d.json”))
//.CreateScoped(intentClient.DefaultScopes);
var storage=StorageClient.Create(凭证);
var client=intentclient.Create();
var text=new Intent.Types.Message.Types.text();
text.text添加(“消息文本”);
var message=new Intent.Types.message()
{
文本=文本
};
var trainingPhrasesParts=新列表
{
“订一张飞行票”,
“检查廉价航班”
};
var phraseParts=新列表();
foreach(培训用语中的var部分)
{
添加(新的Intent.Types.TrainingPhrase.Types.Part()
{
文本=部分
});
}
var trainingPhrase=newintent.Types.trainingPhrase();
培训短语.部件.添加范围(短语部件);
var intent=新intent();
intent.DisplayName=“测试”;
intent.Messages.Add(消息);
意图。培训短语。添加(培训短语);
var newIntent=client.CreateIntent(
母公司:新代理名称(“chatbot-a90a9”),
意图:意图
);
已解决

我改变

var client = IntentsClient.Create();


代码中的哪一行抛出错误?您是否调试了代码以检查
凭据
是否从文件正确初始化?
var client = IntentsClient.Create();
IntentsClientBuilder builder = new IntentsClientBuilder
        {
            CredentialsPath = file, // Relative to where the code is executing or absolute path.
            // Scopes = IntentsClient.DefaultScopes // Commented out because there's no need to specify this since you are using the defaults and all default values will be automatically used for values not specified in the builder.
        };
        IntentsClient client = builder.Build();