如文档中所述,我设置了云帐户并激活了对话框流程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.
任何帮助都将不胜感激。
答案 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'
这解决了我的问题。