调用createEntityType时的权限错误

时间:2017-11-20 19:11:19

标签: node.js permissions google-cloud-platform dialogflow

我正在尝试从dialogflow node.js库中拨打createEntityType,我收到以下错误:

Failed to create size entity type: { Error: IAM permission 'dialogflow.entityTypes.create' on 'projects/My-Project-Name/agent' denied.
    at /home/my/path/to/My-Project-Name/node_modules/grpc/src/client.js:554:15
  code: 7,
  metadata: Metadata { _internal_repr: { 'grpc-server-stats-bin': [Array] } } }

这是在我完成关于启用Application Default Credentials的教程之后,该教程似乎在大多数情况下都有效。

我已尝试在Google云端平台上启用关联帐户的所有IAM权限,但这并未解决问题;这些似乎都与Google App Engine有关。有什么地方我可以去操作DialogFlow特定的IAM权限吗?

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为我没有正确声明应用程序名称。

createEntityType example中,您需要使用方法intentsClient.projectAgentPath(...)来定义项目代理的URI。

虽然我的项目的高级名称由大写字母组成,但实际的项目ID却没有;这就是Cloud SDK尝试验证的情况。因此,在致电projectAgentPath(...)时,请使用代理商settings中指定的完全项目ID。

此外,请确保为项目启用了DialogFlow API。您可以访问以下网址来执行此操作:

https://console.developers.google.com/apis/library/dialogflow.googleapis.com/?project=my-project-name