【问题标题】:Google actions builder - how to read from webhook request and avoid empty responseGoogle 操作构建器 - 如何从 webhook 请求中读取并避免空响应
【发布时间】:2021-04-06 13:40:27
【问题描述】:

当我使用 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

【问题讨论】:

  • var_dump($requestBody); 显示什么?请相应地更新您的帖子,以便我们可以看到传入的原始数据
  • @hppycoder 您能否提供一个示例,我将如何发回该 JSON 对象。那会很有帮助。谢谢

标签: php webhooks actions-on-google google-assistant actionbuilder


【解决方案1】:

虽然它显示在测试控制台中,但“requestJson”属性并不是发送给您的正文的一部分。正文将只包含该属性下的对象。

所以获取$customerName 的行应该更像

 $customer_name=$json["intent"]["params"]["customer_name"]["resolved"];

您收到有关未收到响应的错误的具体原因是响应的“simpleResponse”属性中没有设置任何属性。我假设这是因为 $customer_name 最终没有被设置,所以 php 或 Assistant 正在删除 null 属性值。

【讨论】:

  • 感谢囚犯现在工作。感谢您的大力帮助
猜你喜欢
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 2021-08-26
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 1970-01-01
  • 2012-09-09
相关资源
最近更新 更多