【问题标题】:How do we programatically create a Project and Agent in Dialogflow?我们如何以编程方式在 Dialogflow 中创建项目和代理?
【发布时间】:2021-09-07 02:00:58
【问题描述】:

我正在尝试从我的 Spring Boot 微服务应用程序自动创建 Dialogflow 代理和项目。同样在 google 提供的 API Explorer 上运行良好。但是,当我尝试从 Postman 进行相同的 http 调用(稍后我可以在应用程序中执行相同的过程)时,授权因权限不足而失败。

从 JavaScript 层集成 OAuth 2.0 也是如此。在这里,使用 UI 的人将是外行,我们不想将 Dialogflow 逻辑暴露给最终用户,因此希望从微服务中做同样的事情。

是否可以以编程方式创建代理,或者这不可行?

【问题讨论】:

    标签: spring-boot dialogflow-es chatbot dialogflow-cx


    【解决方案1】:

    要回答您的问题,可以以编程方式创建 Dialogflow 代理:

    Dialogflow v2 API 提供了可用于以编程方式与 Dialogflow 代理交互的方法。

    • 首先,您必须创建一个可以使用documentation 中提到的 API 方法完成的 Google 云项目,记下将用于调用 Dialogflow API 的项目 ID。

    • 在您的 Google Cloud 项目中启用 Dialogflow API

    • 根据documentation,projects.setAgent 方法用于创建或更新 Dialogflow 代理。

    • 您可以通过提供所需参数在 API Explorer 上试用

      agent.parent: 项目/

      请求正文: { "displayName": "" }

    • 启用凭据并执行它。您将收到 200 成功响应,并且将在 Dialogflow 控制台中创建一个新代理。

    如果您想从 Postman 访问 Dialogflow:

    • 创建 OAuth 2.0 客户端 ID
    • 在 Postman 中,创建一个新请求并选择“授权”选项卡并选择“OAuth 2.0”类型。点击“获取新的访问令牌”
    • 向 Dialogflow API 发送 get/post 请求
    • 有关详细演示,请参阅此Github 链接。

    【讨论】:

      【解决方案2】:

      您必须在请求标头中包含这些内容

       - grant_type = refresh_token
       - approval_prompt = force
       - redirect_uri
       - client_id
       - client_secret
       - prompt = consent
       - access_type = offline
       - refresh_token
      

      通过包含这些授权将成功。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多