Google cloud platform 我正在使用gcp服务帐户,但调用对话流api时出现错误:

Google cloud platform 我正在使用gcp服务帐户,但调用对话流api时出现错误:,google-cloud-platform,dialogflow-es,Google Cloud Platform,Dialogflow Es,以下是错误: 您的应用程序已使用来自的最终用户凭据进行身份验证 Google Cloud SDK或Google Cloud Shell不受 dialogflow.googleapis.com。我们建议大多数服务器应用程序 改用服务帐户。有关服务的详细信息,请参见 帐户以及如何在应用程序中使用它们,请参阅 许多客户端库都是从中提取的,在该链接上提供了如何检查它们的摘要。本质上,它将检查环境变量的路径,并从该位置提取凭据。此错误消息表示您使用的是用户帐户,而不是服务帐户 最常见的情况是,您使用gc

以下是错误:

您的应用程序已使用来自的最终用户凭据进行身份验证 Google Cloud SDK或Google Cloud Shell不受 dialogflow.googleapis.com。我们建议大多数服务器应用程序 改用服务帐户。有关服务的详细信息,请参见 帐户以及如何在应用程序中使用它们,请参阅


许多客户端库都是从中提取的,在该链接上提供了如何检查它们的摘要。本质上,它将检查环境变量的路径,并从该位置提取凭据。此错误消息表示您使用的是用户帐户,而不是服务帐户

最常见的情况是,您使用
gcloud auth login
登录一次,即使您提供了服务帐户,它仍然会从应用程序默认位置提取

正如您所做的,关联特定服务帐户的方法是
gcloud auth activate service account--key file


或者,要使用真正的应用程序默认值,您可以使用
gcloud auth application default login

我会再次检查您的应用程序是否未使用应用程序默认凭据运行,以及您的计算机是否未使用“gcloud auth login”或类似的配置。谢谢。。!!现在它开始工作了,我只需使用gcloud auth activate service account--key file来激活我的服务帐户。@BugResolver你能在这篇文章中添加你的解决方案作为答案吗?这样每个人都能看得更清楚。提前谢谢。我还有更改代码:let config={凭证:{private\u key:privateKey,client\u email:clientEmail}}const sessionClient=new dialogflow.sessionClient(配置);const sessionPath=sessionClient.sessionPath(projectId,sessionId);}