Ответ о выполнении PHP webhook не отображается в Действиях в Google - PullRequest
0 голосов
/ 16 декабря 2018

Ответ выполнения отображается в диагностической информации в среде Dialogflow.Но он не появляется, когда я тестирую его в Действиях в Google.Кто-нибудь, кто знает, как это работает?Вот мой код веб-крюка:

<?php

$method = $_SERVER['REQUEST_METHOD'];

if($method == 'POST'){
        $requestBody = file_get_contents('php://input');
        $json = json_decode($requestBody);

        $text = $json->queryResult->queryText;

        $date = (!empty($json->queryResult->parameters->date)) ? $json->queryResult->parameters->date : '';
        $environment  = (!empty($json->queryResult->parameters->environment)) ? $json->queryResult->parameters->environment : '';
        $intent   = (!empty($json->queryResult->intent->displayName)) ? $json->queryResult->intent->displayName : '';

        $responseText = prepareResponse($intent, $text, $date, $environment);

        $response = new \stdClass();
        $response->speech = $responseText;
        $response->displayText = $responseText;
        $response->source = "webhook";
        header("Content-type:application/json");
        echo json_encode($response);
}
else
{
        echo "Method not allowed";
}

function prepareResponse($intent, $text, $date, $environment)
    {
    return "You said: " . $text . " | I found Intent: " . $intent . " | with parameters: date=" . $date . " environment=" . $environment;    
    }
?>

1 Ответ

0 голосов
/ 16 декабря 2018

Ответы для действий в Google должны находиться в объекте с атрибутом payload, который содержит один атрибут google с форматом ответа AoG .

Я не проверялэто, и это, возможно, не лучший способ построить его, но что-то вроде следующего должно работать:

$response->payload = array(
  "google" => array(
    "expectUserResponse" => TRUE,
    "richResponse" => array(
      "items" => array(
        array(
          "simpleResponse" => array(
            "textToSpeech" => $responseText
          )
        )
      )
    )
  )
);
...