Я работаю с сервером AWS EC2 (Ubuntu). Это установлено, чтобы открыть так для всего трафика. Я пытаюсь получить свой Webhook от HubSpot для подключения к моей странице php для сбора данных. Я протестировал этот webhook с рекомендованным сайтом RequestBin, и все данные поступают просто отлично. Таким образом, это заставляет думать, что это мой код или, возможно, использование SSL на сервере, который используется для подключения к нему через терминал.
мой PHP-код …
<?php
# taking data from HubSpot's webhook
//$hookData = json_decode(file_get_contents("php://input"), ture);
//$_POST = json_decode(file_get_contents("http://requestb.in/150jn861")); // does not get anything
//$_POST = file_get_contents('http://requestb.in/150jn861'); // writes to file the string "ok"$_POST = json_decode(file_get_contents("php://input"), ture);
$file = fopen("datadump1.txt", "w");
fwrite($file, $_POST);
fclose($file);
var_dump($_POST); // test input
echo "\nTest completed\n";
?>
Я нашел 2 других сообщения здесь для webhooks и hubspot, но исправление не работало. Как видите, я тестировал несколько вещей, но ничего не получил. Так как это aws ec2, я не могу использовать var_dump или echo, чтобы действительно протестировать так хорошо, как хотелось бы. Я никогда не использовал этот тип среды раньше. Заранее благодарю за любую помощь, которую вы можете оказать.
Это было большим упущением с моей стороны. Я не учел разрешения в Ubuntu. после тестирования с локальными файлами и cRUL для моего файла testPHP я обмотал это. изменил права доступа с помощью «sudo chmod -R 777 /var/www/html/testPHP.php», затем с локальным POST я был создан файл и данные были в нем. вот мой код для всех, кто этого хочет; И НЕ ЗАБУДЬТЕ РАЗРЕШИТЬ ЕСЛИ В UBUNTU. хахаха
<?php
# taking data from HubSpot's webhook
$hookData = file_get_contents("php://input");
$file = fopen('datadump.json','w') or die("Unable to open file!");
fwrite($file, $hookData);
fclose($file);
//var_dump($hookData); // test input
echo "\nTest completed\n" . $hookData;
?>
в моем файле POST …
?php
$myObj = null;
$myObj->name = "Name";
$myObj->age = 32;
$myObj->city = "New York";
$myJSON = json_encode($myObj);//API Url
$url = 'REMOVED; put your URL here';
//Initiate cURL.
$ch = curl_init($url);
//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);
//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $myJSON);
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
//Execute the request
$result = curl_exec($ch);
?>
Других решений пока нет …