标签: dialogflow-es-fulfillment

错误:对浏览器客户端域的请求不安全:dialogflow.googleapis.com

我正在设置DialogFlow包装器,并且正在使用DialogFlow JavaScript SDK。但是,出现以下错误:

错误:对浏览器客户端域的请求不安全:dialogflow.googleapis.com

这以前是可行的,但是我不确定为什么突然停止了。

我尝试将所有代码还原为有效的版本。我确定这是DialogFlow错误。

  const intentDetectResponse = await sessionClient.detectIntent(request)
Run Code Online (Sandbox Code Playgroud)

完整的错误日志如下:

{ Error: Request unsafe for browser client domain: dialogflow.googleapis.com
    at Http2CallStream.call.on (/Users/NewProject/node_modules/@grpc/grpc-js/build/src/client.js:101:45)
    at Http2CallStream.emit (events.js:194:15)
    at process.nextTick (/Users/NewProject/node_modules/@grpc/grpc-js/build/src/call-stream.js:71:22)
    at process.internalTickCallback (internal/process/next_tick.js:70:11)
  code: 3,
  details:
   'Request unsafe for browser client domain: dialogflow.googleapis.com',
  metadata:
   Metadata {
     options: undefined,
     internalRepr: Map { 'grpc-server-stats-bin' => [Array] } } }
Run Code Online (Sandbox Code Playgroud)

node.js express dialogflow-es dialogflow-es-fulfillment

10
推荐指数
1
解决办法
389
查看次数

富消息在内部测试器中显示,为什么不能在Messenger中显示?

我有一个 Dialogflow 聊天机器人。在 Dialogflow 内部测试器中一切正常,但在 facebook 上显示的版本中,我无法获得卡片或建议。即使我用另一个工作聊天机器人的代码替换它们。

const functions = require('firebase-functions');
const {WebhookClient} = require('dialogflow-fulfillment');
const {Card, Suggestion, Payload} = require('dialogflow-fulfillment');
var answers = [];

process.env.DEBUG = 'dialogflow:debug'; // enables lib debugging statements

exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
  const agent = new WebhookClient({ request, response });

  function welcome(agent) {
    agent.add('Hi! Do you want to discover your lockdown personality?');
    agent.add(new Card({
        title: '1. How has the COVID-19 crisis',
        imageUrl: 'https://ejoy-english.com/blog/wp-content/uploads/2018/08/shutterstock_524250877-e1496428580440.jpg',
        text: 'impacted the stability of your life?',
      })
    );
    agent.add(new …
Run Code Online (Sandbox Code Playgroud)

javascript rich-media dialogflow-es-fulfillment

9
推荐指数
1
解决办法
949
查看次数

如何在 Dialogflow 中重新排序 Intent 响应消息或自动链接 Intent?

我正在使用 Dialogflow 并在特定结构中设置了 x 数量的意图,包括无上下文意图和后续意图。

有了这个,我有 1 个默认的“欢迎意图”,它有一个简单的文本响应。但是,我还有一个 Google 协助响应“基本卡”类型,我希望在默认文本响应之前发出它,并且想知道这是否可能?

或者,我希望能够以一种在触发下一个 Intent 之前不需要用户输入的方式链接 Intent。我已经看到在 Dialogflow 中没有用户输入的情况下触发下一个意图是指 API 或 Webhooks,尽管这似乎需要启用“云功能”或 Webhooks 在 Dialogflow 之外的应用程序上指定端点。我最好将这个逻辑包含在 Dialogflow 中,而不是包含在 Webhooks 中。通过 API,我并不清楚如何处理这个问题,因此任何有关这方面的指导都会有所帮助。

我也知道对此提出了类似的问题,指出意图基于用户输入/意图,但无论这种设计如何,我仍然想知道是否有可能在上述约束范围内?

dialogflow-es dialogflow-es-fulfillment

6
推荐指数
0
解决办法
258
查看次数

无法在Dialogflow实现中读取上下文(突然未定义)

我们使用google cloud功能作为webhook构建了一个Dialogflow代理,该代理可以正常运行直到昨天晚上。那时,我导出了代理,之后又重新导入,它工作了一段时间。

停止工作的是,即使根据UI和原始API响应设置了上下文,agent.context.get('...');(也agent.getContext('...'))确实会返回undefined

例如,我有一个意图,该意图具有必需的slot shop,启用了用于填充插槽的webhook。当我测试代理时,命名的意图info正确匹配,并且上下文info_dialog_params_store似乎也存在:

意图

根据原始API响应,这是输出上下文的一部分:

"outputContexts": [
      {
        "name": "projects/MYAGENTNAME/agent/sessions/0b753e8e-b377-587b-3db6-3c8dc898879b/contexts/info_dialog_params_store",
        "lifespanCount": 1,
        "parameters": {
          "store": "",
          "store.original": "",
          "kpi": "counts",
          "date_or_period": "",
          "kpi.original": "trafico",
          "date_or_period.original": ""
        }
      }
Run Code Online (Sandbox Code Playgroud)

在webhook中,我将意图正确地映射到js函数:

let intentMap = new Map();
intentMap.set('info', info);
agent.handleRequest(intentMap);
Run Code Online (Sandbox Code Playgroud)

info函数的第一行如下所示:

function info(agent) {
    store_context = agent.context.get('info_dialog_params_store');
}
Run Code Online (Sandbox Code Playgroud)

哪个返回

TypeError: Cannot read property 'get' of undefined
    at info (/user_code/index.js:207:36)
    at WebhookClient.handleRequest (/user_code/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:303:44)
    at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/user_code/index.js:382:9)
    at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:57:9)
    at /var/tmp/worker/worker.js:762:7 …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform dialogflow-es dialogflow-es-fulfillment

5
推荐指数
2
解决办法
980
查看次数

Webhook调用失败:DialogFlow v2实现中的URL_REJECTED错误

错误说明

调用DialogFlow v2 detectIntentAPI后,我们会随机收到状态代码为13的内部错误:

Webhook呼叫失败。没有HTTP状态代码的提取失败。状态:状态:URL_REJECTED原因:67

该错误似乎是随机发生的。相同的请求可以成功或失败。有趣的是,自2019年8月23日(星期五)以来,该服务一直在恶化,直到今天几乎所有电话都无法通过。

我们的调查

URL_REJECTED互联网上的DialogFlow或Google 根本找不到任何东西。

但是我们在此页面上找到了状态码13的含义:

内部错误。这意味着基础系统期望的一些不变式已被破坏。该错误代码保留用于严重错误。

我们还检查了我们是否没有禁止Google IP,是否没有弄乱我们的负载平衡(我们想到了这一点,因为随机失败会很有意义)。

Webhook已启动并正在运行,我们可以自己调用它。该问题似乎发生在Google的基础设施中,错误代码13似乎显示出来。

google-cloud-platform dialogflow-es dialogflow-es-fulfillment

5
推荐指数
1
解决办法
1151
查看次数

Dialogflow 响应时间限制可以修改吗?

我正在使用 webhook 在 dialogflow 上制作一个机器人。我收到一个错误:DEADLINE_EXCEEDED。我的 webhook 需要 5 秒多一点的时间来返回响应。有没有办法允许超过 5 秒的时间?

chatbot webhooks dialogflow-es dialogflow-es-fulfillment

5
推荐指数
1
解决办法
2046
查看次数

如何在对话框流中使用异步函数?

我收到错误,因为“异步函数”仅在 es8 中可用(使用“esversion 8”)” 我尝试在内联代码 package.json 中放入“esversion:8”,但它不起作用,并且函数未部署。

代码: index.js

'use strict';
'use esversion: 8'; //not working

async function getWeather() {
      const city = 'Mumbai';
      const OPENWEATHER_API_KEY = '<API KEY>';


      const response = await fetch(`http://api.openweathermap.org/data/2.5/weather?q=${city}&appid=${OPENWEATHER_API_KEY}`);
      const data = await response.json();
      console.log(data);

      const { main } = data;
      const { temp } = main;
      const kelvin = temp;
      const celsius = Math.round(kelvin - 273.15);

      console.log(celsius);
   }

Run Code Online (Sandbox Code Playgroud)

代码package.json

{
  "name": "dialogflowFirebaseFulfillment",
  "description": "This is the default fulfillment for a …
Run Code Online (Sandbox Code Playgroud)

javascript node.js google-cloud-functions dialogflow-es dialogflow-es-fulfillment

5
推荐指数
1
解决办法
2707
查看次数

有没有办法检索 Dialogflow 中的对话历史记录?

有没有办法获得用户和代理之间的完整对话。与我通过单击历史标签获得的结果非常相似,但以编程方式获得。重点是将用户和代理之间的交互保存为文本。

提前谢谢各位了!

chatbot node.js api-ai dialogflow-es dialogflow-es-fulfillment

3
推荐指数
1
解决办法
7067
查看次数

Ngrok url 每天都会变化 我启动 Ngrok

当我离开办公室时,我必须关掉电脑,然后我必须在Ngrok第二天开始工作。令人惊讶的是,它URL给出Ngrok的与昨天给出的不同。所以为了测试DialogflowWebhook Fulfillment必须每天都改变URL!那么如何避免这种情况呢?

ngrok dialogflow-es dialogflow-es-fulfillment

2
推荐指数
1
解决办法
7785
查看次数

如何在 dialogflow 中制作注册机器人?

我想使用 dialogflow 进行注册。例如:我想让机器人问以下问题:

你叫什么名字?你的邮箱是什么?

等等。

我试图实现这一点,但无法正确管理意图。我该怎么做才能实现这一目标?谢谢

dialogflow-es dialogflow-es-fulfillment dialogflow-cx

2
推荐指数
1
解决办法
111
查看次数

条件块和响应的 DialogFlow CX 语法

使用谷歌新的可视化 DialogFlow CX 构建器,我将参数传递给 Flow。模拟器显示参数已设置,我可以访问它,$session.params.anger 但想知道如何设置会话/页面/意图参数。

还有这些条件块的语法是什么。似乎有一些奇怪的类似 bash 的语法。它似乎if/else/endif有效并且具有基本的语法突出显示,但我只是通过反复试验发现了这一点。有没有这方面的文件?也许它是 ES 的一个共同特征?

https://cloud.google.com/dialogflow/cx/docs/concept/parameter

愤怒

dialogflow-es dialogflow-es-fulfillment dialogflow-cx

0
推荐指数
1
解决办法
1433
查看次数