我正在使用我的服务器上的PHP Webhook实现来创建带有dialogflow的预订表助手,该服务器上创建了JSON响应。 问题是我不理解如何根据用户答案切换意图!例如,如果用户询问
两个人的书桌
去intent.time询问几点。 然后进入意图 问用户想要预订哪一天 当所有参数都不为空时,转到intent.last! 这是我的webhook:
header( "Access-Control-Allow-Headers: *" );
header( "Access-Control-Allow-Origin: *" );
header( "Access-Control-Allow-Credentials: true" );
header( "Content-Type: application/json" );
$postdata = file_get_contents( "php://input" );
$input = json_decode( $postdata, true );
$intent = $input[ "queryResult" ][ "intent" ][ "name" ];
$intentD = $input[ "queryResult" ][ "intent" ][ "displayName" ];
$session = $input[ "session" ];
$response = $input[ "responseId" ];
$testo = $input[ "queryResult" ][ "queryText" ];
$giorno = $input[ "queryResult" ][ "parameters" ][ "giorno" ];
$guest = $input[ "queryResult" ][ "parameters" ][ "guest" ];
$ora = $input[ "queryResult" ][ "parameters" ][ "time" ];
if ($ora!=''){$ora = date("H:i:s", $ora);}else{$ora='';};
if ( $giorno == '' ) {
$risp = "Che giorno volete prenotare?";
}
if ( $guest == '' ) {
switch(true){
case ($guest >= '20') :
$risp = "Con le prenotazioni on-line potete prenotare per massimo 20 persone! Per prenotazioni più grandi potete chiamare dalle ore 18 al numero 06 333 87 68. Grazie";
case ($guest == '0') :
$risp = "Dovrai pur mangiare anche se da solo!";
default:
$risp = "Per quante persone volete prenotare?";
break;
}
};
if ( $time == '' ) {
$risp = "Per che ora volete prenotare?";
};
if ( $giorno != '' && $guest != '' && $ora != '' ) {
$risp = "La prenotazione è andata a buon fine!";
};
echo '{
"fulfillmentText":"' . $risp . '",
"fulfillmentMessages": [{
"text": {
"text":["' . $risp . '"]
}
}],
"source":"webhook",
"payload": {
"google": {
"expectUserResponse": true,
"richResponse": {"items": [{"simpleResponse": {"textToSpeech":"PLACEHOLDER"}}]},
"systemIntent": {
"intent":"actions.intent.TRANSACTION_REQUIREMENTS_CHECK",
"data": {
"@type":"type.googleapis.com/google.actions.v2.TransactionRequirementsCheckSpec",
"orderOptions": {"requestDeliveryAddress": false},
"paymentOptions": {
"actionProvidedOptions": {
"displayName":"VISA-1234",
"paymentType":"PAYMENT_CARD"
}
}
}
}
}
},
"outputContexts": [{
"name":"' . $session . '/contexts/restaurant_booking_create_dialog_context",
"lifespanCount": 1,
"parameters": {
"time":"' .$ora. '",
"guest": "' . $guest . '",
"giorno.original":"' . $giorno . '",
"giorno":"' . $giorno . '",
"guest.original":"' . $guest . '",
"time.original":"' .$ora. '"
}
}]
}';