Как получить данные из вебхука?

Ссылка скопирована
PHP
1 ответ

Мне приходит вебхук, вот такой:
https://webhook.site/#!/2231c244-be0b-416d-9fe9-2f...

Я хочу конкретно взять значение поля name.
spoiler

Как получить данные из вебхука?

Пробую:

$json = file_get_contents('php://input'); $action = json_decode($json, true);      $sName = strval($action['name']['value']);;

$json = file_get_contents('php://input'); $action = json_decode($json, true); $sName = strval($action['name']['value']);;

Я наверное просто не понимаю, как в php обращаться к массивам json...

Дополнительно:

Это какой-то странный сайт, который зачем-то показывает данные в виде json, хотя в запросе он отсутствует.
А весь массив целиком передается в полях запроса.
То есть это будет $_POST['fields']['name']['value']

  • Да, заработало.
    С самого начала писал $_POST['name'], думая что в вебхуке просто данные с формы.
  • ну вот там есть раздел raw. берете его и идете на https://www.urldecoder.org/
    и сразу становится видно, что никакого json там нет

Ответы:

Используйте json_decode

$data = json_decode($_REQUEST['fields'], true); echo $data['name']['value']

$data = json_decode($_REQUEST['fields'], true); echo $data['name']['value']

  • Попробовал.
    Потом я отправляю данные в другую программу (битрикс24).
    С вашим примером даже отправляться перестало.

    spoiler

    <?php      $data = json_decode($_REQUEST['fields'], true);     $sName = $data['name']['value'];     $sPhone = $data['field_d3fa9a6']['value'];  	 	$b24Url = "https://metodika.bitrix24.ru";	// URL своего Битрикс24 	$b24UserID = "6";						// ID пользователя, от имени которого будем добавлять лид 	$b24WebHook = "nichegointeresnogo";		// код вебхука, 	 	// формируем URL, на который будем отправлять запрос 	$queryURL = "$b24Url/rest/$b24UserID/$b24WebHook/crm.lead.add.json";	 	 	// формируем параметры для создания лида	 	$queryData = http_build_query(array( 		"fields" => array( 			"TITLE" => "Лид с сайта ПТСнаб",	// название лида 			"NAME" => $sName,				// имя  			"PHONE" => array(	// телефон в Битрикс24 				"n0" => array( 					"VALUE" =>  $sPhone,	// номер 					"VALUE_TYPE" => "MOBILE",			// тип номера = мобильный 				), 			), 			//"UTM_SOURCE"=>$utm_source, 			//"UTM_MEDIUM"=>$utm_medium, 			//"UTM_CAMPAIGN"=>$utm_campaign, 		), 		'params' => array("REGISTER_SONET_EVENT" => "Y")	// Y = произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид.	 	));  	// отправляем запрос в Б24 и обрабатываем ответ 	$curl = curl_init(); 	curl_setopt_array($curl, array( 		CURLOPT_SSL_VERIFYPEER => 0, 		CURLOPT_POST => 1, 		CURLOPT_HEADER => 0, 		CURLOPT_RETURNTRANSFER => 1, 		CURLOPT_URL => $queryURL, 		CURLOPT_POSTFIELDS => $queryData, 	)); 	$result = curl_exec($curl); 	curl_close($curl); 	$result = json_decode($result,1);    	// если произошла какая-то ошибка - выведем её 	if(array_key_exists('error', $result)) 	{       		die("Ошибка при сохранении лида: ".$result['error_description']); 	} 	 	echo "Лид добавлен, отличная работа :)"; ?>

    <?php $data = json_decode($_REQUEST['fields'], true); $sName = $data['name']['value']; $sPhone = $data['field_d3fa9a6']['value']; $b24Url = "https://metodika.bitrix24.ru"; // URL своего Битрикс24 $b24UserID = "6"; // ID пользователя, от имени которого будем добавлять лид $b24WebHook = "nichegointeresnogo"; // код вебхука, // формируем URL, на который будем отправлять запрос $queryURL = "$b24Url/rest/$b24UserID/$b24WebHook/crm.lead.add.json"; // формируем параметры для создания лида $queryData = http_build_query(array( "fields" => array( "TITLE" => "Лид с сайта ПТСнаб", // название лида "NAME" => $sName, // имя "PHONE" => array( // телефон в Битрикс24 "n0" => array( "VALUE" => $sPhone, // номер "VALUE_TYPE" => "MOBILE", // тип номера = мобильный ), ), //"UTM_SOURCE"=>$utm_source, //"UTM_MEDIUM"=>$utm_medium, //"UTM_CAMPAIGN"=>$utm_campaign, ), 'params' => array("REGISTER_SONET_EVENT" => "Y") // Y = произвести регистрацию события добавления лида в живой ленте. Дополнительно будет отправлено уведомление ответственному за лид. )); // отправляем запрос в Б24 и обрабатываем ответ $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_SSL_VERIFYPEER => 0, CURLOPT_POST => 1, CURLOPT_HEADER => 0, CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => $queryURL, CURLOPT_POSTFIELDS => $queryData, )); $result = curl_exec($curl); curl_close($curl); $result = json_decode($result,1); // если произошла какая-то ошибка - выведем её if(array_key_exists('error', $result)) { die("Ошибка при сохранении лида: ".$result['error_description']); } echo "Лид добавлен, отличная работа :)"; ?>

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Елена Вебер Ответ

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

// Получаем данные из вебхука
$data = file_get_contents('php://input');
 
// Преобразуем данные из JSON в массив
$data_array = json_decode($data, true);
 
// Далее вы можете обработать полученные данные как вам необходимо

// Получаем данные из вебхука $data = file_get_contents('php://input'); // Преобразуем данные из JSON в массив $data_array = json_decode($data, true); // Далее вы можете обработать полученные данные как вам необходимо

В данном примере мы используем функцию file_get_contents для получения данных из потока ввода php://input, который содержит тело запроса. Затем мы преобразуем полученные данные из формата JSON в массив с помощью функции json_decode. После этого вы можете обрабатывать полученные данные в соответствии с вашими потребностями.

Не забудьте учитывать безопасность при обработке данных из вебхука, так как недостаточная валидация и фильтрация данных может привести к уязвимостям в вашем приложении. Всегда проверяйте и очищайте данные перед их использованием.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно