Google actions builder - 如何从 webhook 请求中读取并避免空响应
Google actions builder - how to read from webhook request and avoid empty response
当我使用 PHP 调用 webhook 时,我在测试时收到此消息。抱歉,我没有收到任何回复
附上我的 webhook 请求 json 和
和 php 代码
if($method == 'POST')
{
$requestBody = file_get_contents('php://input');
$json = json_decode($requestBody, true, 512, JSON_BIGINT_AS_STRING);
$customer_name=$json["requestJson"]["intent"]["params"]["customer_name"]["resolved"];
$response = array ('prompt' => array ('firstSimple' => array ( 'speech' => $customer_name, 'text' =>
$customer_name)));
echo json_encode( $response );
}
测试时也有 webhook 响应 json
{
"responseJson": {
"prompt": {
"firstSimple": {}
}
}
}
Webhook 请求json
虽然它显示在测试控制台中,但“requestJson”属性并不是发送给您的正文的一部分。正文将仅包含该属性下的对象。
所以获取 $customerName
的行应该更像
$customer_name=$json["intent"]["params"]["customer_name"]["resolved"];
您收到有关未收到响应的错误的具体原因是因为没有在响应的“simpleResponse”属性中设置任何属性。我假设这是因为 $customer_name
最终没有得到设置,所以 php 或助手正在删除空属性值。
当我使用 PHP 调用 webhook 时,我在测试时收到此消息。抱歉,我没有收到任何回复 附上我的 webhook 请求 json 和 和 php 代码
if($method == 'POST')
{
$requestBody = file_get_contents('php://input');
$json = json_decode($requestBody, true, 512, JSON_BIGINT_AS_STRING);
$customer_name=$json["requestJson"]["intent"]["params"]["customer_name"]["resolved"];
$response = array ('prompt' => array ('firstSimple' => array ( 'speech' => $customer_name, 'text' =>
$customer_name)));
echo json_encode( $response );
}
测试时也有 webhook 响应 json
{
"responseJson": {
"prompt": {
"firstSimple": {}
}
}
}
Webhook 请求json
虽然它显示在测试控制台中,但“requestJson”属性并不是发送给您的正文的一部分。正文将仅包含该属性下的对象。
所以获取 $customerName
的行应该更像
$customer_name=$json["intent"]["params"]["customer_name"]["resolved"];
您收到有关未收到响应的错误的具体原因是因为没有在响应的“simpleResponse”属性中设置任何属性。我假设这是因为 $customer_name
最终没有得到设置,所以 php 或助手正在删除空属性值。