我需要使用 PHP y Dialogflow 存储会话变量
I need to store sesion variable witn PHP y Dialogflow
我的项目是有一个聊天机器人,可以销售电阻器、二极管等电子设备。
电阻和二极管的种类很多
我在 dialogflow 中有我的意图,所以当用户选择一个项目时,我需要将它存储到 php 会话变量中,所以当用户完成后,我需要在会话变量中恢复该项目,但它不起作用
收到名为“tomar_cantidad”的对话流意图
if (intent_recibido("tomar_cantidad")) {
$modelo = obtener_variables3('modelo');
$cantidad = obtener_variables2('cantidad');
//enviar_texto(print_r($cantidad));
$datos_usuario = array('modelo'=>$modelo,'cantidad'=>$cantidad);
$_SESSION['datos_usuario'][]= $datos_usuario;
enviar_texto(print_r($_SESSION['datos_usuario']));
}
enviar_texto 是一种将信息发送到 dialogflow 的方法(用于测试目的)。
我收到会话变量但只存储用户选择的最后一个项目而不是所有项目
问题是 PHP $_SESSION
变量绑定到 HTTP 会话,通常使用 HTTP cookie 实现。但是 Dialogflow 在将消息发送到 webhook 时不管理 HTTP cookie,因此每次 fulfillment 调用都是一个新会话。
您有几种方法可以解决此问题:
Get the Dialogflow session ID 并根据此 ID
存储信息
将您想要在对话中的回合之间存储的任何值存储为 parameter in an Output Context。您应该将上下文的生命周期设置为一个较大的数字,通常为 99,或者每次 re-set 作为输出上下文。然后,当你需要这些信息时,你可以读取命名的Context中的参数。
我的项目是有一个聊天机器人,可以销售电阻器、二极管等电子设备。 电阻和二极管的种类很多
我在 dialogflow 中有我的意图,所以当用户选择一个项目时,我需要将它存储到 php 会话变量中,所以当用户完成后,我需要在会话变量中恢复该项目,但它不起作用
收到名为“tomar_cantidad”的对话流意图
if (intent_recibido("tomar_cantidad")) {
$modelo = obtener_variables3('modelo');
$cantidad = obtener_variables2('cantidad');
//enviar_texto(print_r($cantidad));
$datos_usuario = array('modelo'=>$modelo,'cantidad'=>$cantidad);
$_SESSION['datos_usuario'][]= $datos_usuario;
enviar_texto(print_r($_SESSION['datos_usuario']));
}
enviar_texto 是一种将信息发送到 dialogflow 的方法(用于测试目的)。
我收到会话变量但只存储用户选择的最后一个项目而不是所有项目
问题是 PHP $_SESSION
变量绑定到 HTTP 会话,通常使用 HTTP cookie 实现。但是 Dialogflow 在将消息发送到 webhook 时不管理 HTTP cookie,因此每次 fulfillment 调用都是一个新会话。
您有几种方法可以解决此问题:
Get the Dialogflow session ID 并根据此 ID
存储信息将您想要在对话中的回合之间存储的任何值存储为 parameter in an Output Context。您应该将上下文的生命周期设置为一个较大的数字,通常为 99,或者每次 re-set 作为输出上下文。然后,当你需要这些信息时,你可以读取命名的Context中的参数。