我对与集成的dialogflow detect intent函数有问题。网络应用
gCloud,GOOGLE_APPLICATION_CREDENTIALS,gCloud auth激活服务帐户和设置项目属性已从教程中启用,
但我仍然有一条例外消息:“您的应用程序已使用来自Google Cloud SDK或Google Cloud Shell的最终用户凭据进行了身份验证,dialogflow.googleapis.com不支持这些凭据。”
请帮忙
Google应用程序默认凭据(ADC)是一种有用的工具,用于简化Google服务的身份验证。一般(!)您将希望在ADC中使用服务帐户。然而,为了发展的目的(也许是其他的!?)——可以改用最终用户凭据。
您似乎正在使用最终用户凭据(例如您的Google帐户)作为凭据,并且(在这种情况下)这是(DialogFlow)服务不允许的。您必须改为使用服务号。
@marian vladoi的回答是正确的,它提供了帮助您创建服务帐户的命令、服务帐户的密钥以及定义IAM权限。但是,我建议您随后通过导出环境变量GOOGLE\u APPLICATION\u CREDENTIALS
而不是gcloud auth activate service account,将ADC配置为使用此服务帐户
因此:
PROJECT=[[YOUR-PROJECT]]
ACCOUNT="dialogflow" # Or your preferred name
EMAIL="${ACCOUNT}@${PROJECT}.iam.gserviceaccount.com"
FILE=./${ACCOUNT}.json
# Create the service account
gcloud iam service-accounts create ${ACCOUNT} \
--project=${PROJECT}
# Create a key for it
gcloud iam service-accounts keys create ${FILE}
--iam-account=${EMAIL} \
--key-file-type=json \
--project=${PROJECT}
# Grant the service account appropriate permissions
gcloud projects add-iam-policy-binding ${PROJECT} \
--member=serviceAccount:${EMAIL} \
--role=roles/dialogflow.client
NB我假设服务号只需要
角色/dialogflow.client
,但是您可能需要碰撞这个。见:https://cloud.google.com/iam/docs/understanding-roles#dialogflow-roles
如果您使用的是Linux,那么您可以:
export GOOGLE_APPLICATION_CREDENTIALS=${FILE}
# Run your app
在Windows上设置
GOOGLE_APPLICATION_CREDENTIALS
请参阅此处。
我认为您没有正确设置服务号并使用最终用户凭据进行身份验证。
1. gcloud config set project your-project
2. gcloud auth list
ACTIVE ACCOUNT
* end-user-account@test.com
3. gcloud iam service-accounts create dialogflow --description dialogflow --display-name dialogflow
gcloud iam service-accounts list
# dialogflow@your-project.iam.gserviceaccount.com
4. gcloud iam service-accounts keys create key.json --iam-account dialogflow@your-project.iam.gserviceaccount.com
5. gcloud projects add-iam-policy-binding your-project --member dialogflow@your-project.iam.gserviceaccount.com --role roles/owner
6. gcloud auth activate-service-account dialogflow@your-project.iam.gserviceaccount.com --key-file=key.json
7. gcloud auth list
# ACTIVE ACCOUNT
* dialogflow@your-project.iam.gserviceaccount.com
然后您可以继续学习教程
我已经浏览了很多帖子和文章,但没有找到一个简单的解决方案,下面我必须实现。 平台:Spring Boot 2。x、 嵌入Tomcat的x(Spring Security 5.x.x) 解决方案:使用许多客户端应用程序和许多最终用户的REST服务。 > 因此,我必须使用一次性令牌对上述应用程序进行身份验证。因此,我计划通过启用和来实现Spring OAuth2。对于每个应用程序客户端,我将生成一个令
要求是实现一个登录表单,单击submit按钮时需要调用一个javascript,该javascript应该发布用户名/密码。 是否有方法从javascript向spring基本身份验证servlet传递凭据,使其验证请求。我们已经实现了AuthenticationProvider authenticate来执行验证。 http://java.sun.com/xml/ns/javaee/web-ap
我试图在一个反应式Spring Boot应用程序中配置一个Spring Security性,该应用程序具有一个Vuejs前端,在未经身份验证时将用户重定向到外部OpenID提供程序(用于身份验证)。在用户通过OpenID提供程序进行身份验证并重定向回应用程序(前端)后,将根据OpenID提供程序的响应创建用户名密码身份验证令牌(身份验证),并手动进行身份验证。 但是,在执行此操作时,应用程序似乎无
这是服务到服务身份验证中概述的规则的一个例外吗?该规则规定需要设置为接收服务的url(例如https://xxxxx.run.app)。和是一回事吗? 最后,除了使用googlecloudsdk(即imaging不存在)之外,是否还有其他方法使用用户帐户而不是服务帐户进行身份验证?
嗨,好几天了,我都被困在这上面了!在使用本指南转换我的react应用程序后,我尝试使用KeyClope对我的electron应用程序进行身份验证。 当我运行'npm运行电子:dev'时,keyCloak会重定向到登录页面。然而,当我运行'npm运行电子:prod'这失败。 来自KeyClope服务器的日志显示: 请注意,重定向_uri是'file:///...“我相信这就是原因。 我也试图改变下面