为了账号安全,请及时绑定邮箱和手机立即绑定

使用 CURL 接收数据,然后将数据发送到外部 webhook

使用 CURL 接收数据,然后将数据发送到外部 webhook

PHP
慕婉清6462132 2022-01-24 10:47:02
所以我试图从一个 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 代码;我只是想确保我可以先正确发送和接收这些数据。非常感谢任何指导!
查看完整描述

1 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

问题在于 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);

.....


查看完整回答
反对 回复 2022-01-24
  • 1 回答
  • 0 关注
  • 282 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信