如何将意图依赖答案设置为webhook实现json

时间:2019-03-11 14:23:28

标签: php json dialogflow google-assist-api

我正在使用我的服务器上的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. '"
        }
    }]
}';

0 个答案:

没有答案