使用Python

时间:2018-01-08 06:57:02

标签: python-3.x dialogflow api-ai

如文档中所述,我设置了云帐户并激活了对话框流程API。 然后我在dialogflow.com帐户中激活了dialogflow V2,同时在其中设置了相同的google项目。

我以JSON格式下载了Google凭据,并相应地设置了其身份验证路径。

完成所有这些后,我跑了

from google.cloud import storage
storage_client = storage.Client()
buckets = list(storage_client.list_buckets())
print(buckets)

它给了我错误,

OSError: Project was not passed and could not be determined from the environment.

因此,我在存储客户端本身设置了项目名称。

storage_client = storage.Client(project='[Project-id]')

所以,这解决了代码的问题,我认为它应该自己检测到project-id,而不必提供文档中给出的项目ID。

毕竟,我尝试运行以下程序,检查连接,

import dialogflow_v2beta1
client = dialogflow_v2beta1.AgentsClient()
parent = client.project_path('[Project-id]')
response = client.import_agent(parent)

def callback(operation_future):
    result = operation_future.result()

response.add_done_callback(callback)
metadata = response.metadata()

此后我收到以下错误,

PermissionDenied: 403 Dialogflow API has not been used in project usable-auth-library before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/dialogflow.googleapis.com/overview?project=usable-auth-library then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

你有没有跟着这个: https://dialogflow.com/docs/reference/v2-auth-setup

我得到了同样的错误,但这解决了它。您只需要设置身份验证。有任何问题请问我。

答案 1 :(得分:0)

请设置环境变量GOOGLE_APPLICATION_CREDENTIALS https://cloud.google.com/dialogflow-enterprise/docs/reference/libraries

<强>示例:

export GOOGLE_APPLICATION_CREDENTIALS="/home/thanhha/owner-project-ab.json"

答案 2 :(得分:0)

根据https://dialogflow.com/docs/reference/v2-auth-setup?authuser=2

中的说明,一旦我们创建了服务帐户密钥(这是一个json文件,请将其重命名为 private_key.json )。

我们需要在环境变量中将其设置为 @ThanhHa 。通过终端设置环境变量的另一种选择是,将以下代码添加到python代码中。

import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = 'private_key.json'

这解决了我的问题。