Google对话框流程PERMISSION_DENIED异常

And*_*kop 8 grpc dialogflow-es

我正在尝试从Windows Java应用程序访问Google DialogFlow。我已GOOGLE_APPLICATION_CREDENTIALS正确设置了环境变量,并且可以调用其他Google API。但是,当我打电话时:

DetectIntentResponse response = sessionsClient.detectIntent(session, queryInput);

我收到一个grpc异常:

PERMISSION_DENIED:拒绝'projects / newagent-a0ef5 / agent'上的IAM权限'dialogflow.sessions.detectIntent'.Session路径:projects / NewAgent / agent / sessions / xxxx

“ newagent-a0ef5”是我的流程的项目ID。“ xxxx”只是随机的会话ID令牌。

我知道我必须启用dialogflow.sessions.detectIntent访问权限,但是我无法确定在哪里。我使用该值创建了一个自定义角色,并将其添加到与流程相关联的三个IAM帐户中。我还启用了DialogFlow API。

有人知道我在哪里添加此缺少的权限吗?

Kee*_*eth 5

我正确地执行了所有IAM步骤,但是我传递了错误的Project ID来侦听Intent。所以我猜有几件事要检查...

  • 确保项目ID是正确的。您的会话路径应为“项目/ <项目ID> / agent /会话/ <会话ID>”。
  • 确保您使用的服务帐户具有Dialogflow API客户端角色。
  • 尝试使其在API Explorer中工作