php - 使用 CURL 接收数据,然后将数据发送到外部 webhook
问题描述
所以我试图从一个 webhook 接收 JSON 数据,使用 PHP 过滤某些条件,然后根据这些条件将数据发送到外部 webhook 地址。
例如,我在我的服务器上创建了一个名为“webhook.php”的 php 文件:
$dataReceive = file_get_contents("php://input");
$dataEncode = json_encode($dataReceive, true);
print_r($dataEncode);
$curl = curl_init();
$opts = array (
CURLOPT_URL => 'https://hooks.zapier.com/hooks/catch/',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $dataEncode,
CURLOPT_HTTPHEADER => array (
'Content-type: application/json'
)
);
curl_setopt($curl, $opts);
$results = curl_exec($curl);
echo $results;
curl_close($curl);
“php://input”可以是完全一样的,或者我尝试用我的 webhook.php 文件的 URL 替换它以防万一。我可以使用 Postman 测试我的 webhook,并返回 200 OK,但数据从未发送到我的外部 webhook ( https://hooks.zapier.com/hooks/catch/ )。
我已经编写了条件 PHP 代码;我只是想确保我可以先正确发送和接收这些数据。非常感谢任何指导!
解决方案
问题在于 curl_setopt。您需要为此方法 curl_setopt 传递三个参数(资源 $ch 、 int $option 、混合 $value )。您可以通过以下方式设置这些
$curl = curl_init();
$opts = array (
CURLOPT_URL => 'https://hooks.zapier.com/hooks/catch/',
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $dataEncode,
CURLOPT_HTTPHEADER => array (
'Content-type: application/json'
)
);
foreach ($opts as $key => $value) {
curl_setopt($curl, $key, $value);
}
$results = curl_exec($curl);
echo $results;
curl_close($curl);
或者您可以像这样单独设置它们
curl_setopt($curl, CURLOPT_URL, 'https://hooks.zapier.com/hooks/catch/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
.....
推荐阅读
- php - Woocommerce - 更改 2 Checkout 标签文本不起作用
- ios - Xamarin IOS:当应用程序不在后台时如何处理通知点击?(杀死状态)
- java - com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure ,关于mybatis
- javascript - 如何使用 bitcoinjs-lib 发送和接收比特币?
- android - 在颤振中,如何在 pubspec.yaml 文件中添加 tflite 作为依赖项?
- javafx - 上下文菜单中的第一个选项突出显示,而无需从 javafx 9 悬停鼠标
- stackblitz - stackblitz -> 因为它的 MIME 类型 ('text/html') 不可执行,并且启用了严格的 MIME 类型检查
- ios - 尝试使用无效网桥在“Networking”(NativeModule 名称)上调用(方法 ID)
- apache-spark - form_json return null values
- java - 在 java 中启用 excel 的宏中评估单元格公式时出错