Используя CURL для получения данных, затем отправьте данные на внешний веб-крючок - PullRequest
0 голосов
/ 23 сентября 2019

, поэтому я пытаюсь получить данные JSON от одного веб-крюка, использовать PHP для фильтрации по некоторым условиям, а затем отправлять данные на внешний адрес веб-крючка на основе этих условий.

Так, например, я создалphp-файл на моем сервере с именем «webhook.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» может быть в точности таким, как он есть, или я попытался заменить его URL-адресом моего webhook.php файл на всякий случай.Я могу протестировать свой webhook с помощью Postman, и мне возвращается 200 OK, но данные никогда не отправляются на мой внешний webhook (https://hooks.zapier.com/hooks/catch/).

Я уже написал условный код PHP; я просто хочу убедиться, чтоСначала я могу правильно отправить и получить эти данные. Любое руководство очень ценится!

1 Ответ

1 голос
/ 23 сентября 2019

Проблема с curl_setopt.Вам нужно передать три аргумента для этого метода curl_setopt (ресурс $ ch, опция int $, смешанное значение $).Вы можете установить их, следуя инструкциям

$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);
.....
...