如何在DialogFlow php Webhook中处理上下文

时间:2017-12-07 22:19:33

标签: php webhooks dialogflow

我试图了解DialogFlow中的工作环境。 我有一个有效的Php Webhook,它通过curl从输入发送查询,并通过post发送参数,如下所示:

    ... json stuff
    $v = date('Ymd');
    $ch = curl_init('https://api.dialogflow.com/v1/query?v='.$v);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Authorization: Bearer -----------------------'));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);

我试图理解的代码就是这个:

header('Content-Type: application/json');
ob_start();
$json = file_get_contents('php://input'); 
$request = json_decode($json, true);
$action = $request["result"]["action"];
$parameters = $request["result"]["parameters"];

[Code to set $outputtext, $nextcontext, $param1, $param2 values]

$output["contextOut"] = array(array("name" => "$next-context", "parameters" =>
array("param1" => $param1value, "param2" => $param2value)));
$output["speech"] = $outputtext;
$output["displayText"] = $outputtext;
$output["source"] = "whatever.php";
ob_end_clean();
echo json_encode($output);

我对DialogFlow(api.ai)很陌生,我想使用上下文链接它们之间的查询。 (见https://dialogflow.com/docs/contexts) 有人可以解释一下我应该放在上下文中的内容吗? 特别是:

  • nexcontext
  • 参数是什么?它们来自哪里?
  • 输出变量的主要目标是将输出上下文发送给发送方($ output [" source"])这样可以在下一个查询中再次发送上下文?
  • 有人可以提供具有下一个上下文和参数值的示例吗?

非常感谢任何关于此的额外信息

注意:可以在https://discuss.api.ai/t/webhook-in-php-example/229

找到此Context webhook

0 个答案:

没有答案