如何从网页访问 Dialogflow V2 API?

Posted

技术标签:

【中文标题】如何从网页访问 Dialogflow V2 API?【英文标题】:How to access Dialogflow V2 API from a webpage? 【发布时间】:2018-06-20 10:22:56 【问题描述】:

我有一个网页,我想在其中使用对话流聊天机器人。这是一个自定义的聊天窗口,所以我不想使用一键集成。我可以使用 javascript/ajax 访问聊天代理 V1 API(通过在请求标头中传递 客户端访问令牌)。

但我不知道如何在 V2 API 中做到这一点。我不清楚对话流文档(我通过引用this 链接设置了身份验证。我不知道如何进一步处理)。我也不熟悉谷歌云。因此,非常感谢您提供工作示例或逐步访问 API 指南的方法。

【问题讨论】:

这个问题在这里好像已经有了答案:***.com/questions/47059976/… ***.com/questions/50545943/… ... 试试这个而不是 require.. 使用 import... 为 Angular 6 工作 Dialogflow easy way for authorization的可能重复 您必须使用 Web 服务器端访问 Dialogflow V2 API。阅读:dialogflow.com/docs/reference/v1-v2-migration-guide-api 有这方面的消息吗? V2似乎无法使用! 【参考方案1】:

您可以使用Dialogflow Rest API,您需要使用Google cloud sdk生成访问令牌(范围:云平台,对话框流)

  public df_client_call(request) 
    var config = 
      headers: 
        'Authorization': "Bearer " + this.accessToken,
        'Content-Type': 'application/json; charset=utf-8'
      
    ;   
   return this.http.post(
      'https://dialogflow.googleapis.com/v2/projects/' + environment.project_id +
      '/agent/sessions/' + sessionId + ':detectIntent',
      request,
      config
    )
  

在你必须通过的请求中,


    queryInput: 
        text: 
            text: action.payload.text,
            languageCode: 'en-US',
        ,
    

触发事件:,

    
        queryInput: 
            event: 
                name: action.payload.event,
                languageCode: 'en-US',
            ,
        
    

sessionId => 用户的唯一 ID

【讨论】:

以上是关于如何从网页访问 Dialogflow V2 API?的主要内容,如果未能解决你的问题,请参考以下文章

Dialogflow V2:使用java生成访问令牌

从Dialogflow v1迁移到Dialogflow v2时HTTP请求格式的变化是什么

如何使用 dialogflow.v2beta1 创建默认响应

如何使用简单的ajax jQuery对DialogFlow V2进行http调用?

Dialogflow:在意图中引用输出上下文(即这个NodeJS客户端库的用途是什么?)

如何使用 node.js MySQL 从 MySql DB 获取结果并将它们发送回 API.ai - DialogFlow