Я недавно работаю над DialogFlow и мне нужно отправить POST своим собственным веб-сервисам.
Это сервисы отдыха работают с Symfony et PHP.
Я попробовал что-то, и это не сработало.
В этом уроке он работал с Google Cloud, но я не хочу с ним работать.
Я изменил URL Webhook со своим собственным. Я ничего не изменил в DialogFlow, потому что это было хорошо с Google. Вот оно:
/**
* @Rest\View()
* @Rest\Post("/testDialogBot")
*/
public function testDialogBotAction( Request $request )
{
$re = "Test reponse";
$response = new Response(json_encode( array( "speech" => $re, "displayText" => $re )));
$response->headers->set('Content-Type', 'application/json');
return $response;
}
Возвращает JSON DialogFlow:
"status": {
"code": 206,
"errorType": "partial_content",
"errorDetails": "Webhook call failed. Error: Request timeout."},
Я уверен, что это может работать, я делаю что-то плохое, наверное.
Спасибо за помощь.
Согласно официальные документы ответ «должен» имеет следующие поля: речь, displayText, данные, contextOut и источник. Вы только отправляете речь и отображаете текст. Может быть, добавление других сделает свое дело.
Кроме того, ограничения, указанные в документах для ответа:
Время ожидания ответа службы — 5 секунд. Данные, полученные в
Ответ от сервиса — до 64К.
Проверьте, может ли ваш сервер отправить ответ в пределах этих параметров
Хорошо, все в порядке, вам не нужны все параметры. Мой URL был неверным, и кажется, что DialogFlow не принимает https, а только http.