为 Twilio 创建 PHP webhook 的问题

Posted

技术标签:

【中文标题】为 Twilio 创建 PHP webhook 的问题【英文标题】:Issues creating a PHP webhook for Twilio 【发布时间】:2022-01-16 14:12:13 【问题描述】:

所以我在 php 中有以下 CURL 命令,如果我发送它https://webhook.site 我可以提取所有需要的 JSON 格式的数据。

我想创建自己的 PHP webhook 客户端,而不是使用 webhook.site。

下面的代码是使用 webhook.site 时 100% 工作的 CURL 命令:

<?php

   $curl = curl_init();

   curl_setopt_array($curl, array(
   CURLOPT_URL => 'https://webhook.site/832090f1-f54f-4847-8c0d-5ec9208541a1',
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => '',
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 0,
   CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('SmsSid' => 'SMe8723661742d423fbf3fa9f7bbede050','SmsStatus' => 'sent','MessageStatus' => 'sent','ChannelToAddress' => '+1788123XXXX','To' => 'whatsapp:+15196978899','ChannelPrefix' => 'whatsapp','MessageSid' => 'SMe8723661742d423fbf3fa9f7bbede050','AccountSid' => 'AC306a09582e77715b0eb72df90de4c590','StructuredMessage' => 'false','From' => 'whatsapp:+154xxxxxx','MediaUrl0' => 'https://api.twilio.com/2010-04-01/Accounts/werwersdsdg72df90de4c590/Messages/wweugryuwyr7762b11ea/Media/wjeruwiy6243742

'),
  CURLOPT_HTTPHEADER => array(
    'user-agent: TwilioProxy/1.1',
    'host: Postman'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

然后我尝试使用 PHP 创建一个基本的 webhook 来提取数据:

<?php
if($json = json_decode(file_get_contents("php://input"), true))
   $data = $json;
   $fp = file_put_contents( 'request.log', $data );

print_r($data);
?>

但我一直带着一个空白的 request.log 文件——我做错了什么???提前致谢

【问题讨论】:

【参考方案1】:

这里是 Twilio 开发者宣传员。

默认情况下,curl 将使用 Content-Type 标头 application/x-www-form-urlencoded 发出 POST 请求。这实际上与 Twilio 在发送 webhook 请求时使用的内容类型相同。

接收请求的 PHP 正在尝试json_decode 数据,这不适用于表单编码数据。相反,您可以访问$_POST 以获取发送到脚本的参数的关联数组。然后,您可以随意将它们写入日志文件。

【讨论】:

感谢您,最简单的解决方案令人惊叹 - 我刚刚发现了 Twilio - 非常棒 - 再次感谢您! 没问题!希望您使用 Twilio 的实验进展顺利!如果问题也有帮助,请务必将问题标记为已回答。谢谢!

以上是关于为 Twilio 创建 PHP webhook 的问题的主要内容,如果未能解决你的问题,请参考以下文章

从 webhook 传入的 twilio 正文中没有消息

使用 ngrok 地址来电自动设置 Twilio webhook 地址

使用 webhook 在 twilio 中触发获取请求

使用 Zapier Webhook 触发 Twilio 工作室流程

获取 Particle Photon 和 Twilio 之间的 webhook

Twilio 创建地址子账户问题 api php