HubSpot在aws ec2 ubuntu服务器上Webhook到PHP

时间:2017-05-12 18:34:38

标签: php amazon-ec2 webhooks hubspot

我正在使用aws ec2服务器(ubuntu)。对于所有流量,它都设置为打开。我试图从HubSpot获取我的Webhook以连接到我的php页面来收集数据。我已经使用推荐的RequestBin网站测试了这个webhook,并且所有数据都很好。因此,这会导致我认为我的代码或者可能在用于通过终端连接到服务器的服务器上使用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来真正测试我想要的效果。我以前从未使用过这种环境。提前感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

这对我来说非常明显。我没有考虑ubuntu中的权限。在使用本地文件测试并将cRUL测试到我的testPHP文件后,我将其打包出来。使用“sudo chmod -R 777 /var/www/html/testPHP.php”更改了权限,然后使用本地POST我创建了一个文件,数据就在其中。这是我想要它的人的代码;如果在UBUNTU,请不要忘记许可。 HAHAHA

<?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);
?>