Как принять вебхук amocrm в php

Всем привет! Нужно принять вебхук amocrm в свой php код. Вебхук отправляется - проверял на webhook.site. введите сюда описание изображения Пробовал принять через $_POST и file_get_contents('php://input'), а после записать задекоденный json в txt, чтобы понять, пришел ли этот вебхук вообще. Пробовал еще кучу кодов из интернета вроде этого:

    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$raw_payload = file_get_contents('php://input');
$payload = json_decode($raw_payload, true);

if (is_array($payload)) {
    $fh = fopen("log.txt", "a+");

    if ($fh) {
        fwrite($fh, date('Y-m-d H:i:s', time()).PHP_EOL);
        fclose($fh);
    } else {
        trigger_error("Unable to open file!");
    }
} else {
    trigger_error("Invalid payload!");
} else {
trigger_error("Invalid request!");}

Уже достаточно долго ищу информацию и решил спростить здеть. Конкретно по amocrm вообще ничего нет практически, как и в их документации.

В ссылке для вебхука указал адрес страницы с php таким образом: http://mysite.ru/webhook.php

В той же документации сказано, что отправляется post с json данными. Как понять работает ли мой код и доходит ли вебхук? Или может все приходит, но с данными ничего не происходит?


Ответы (1 шт):

Автор решения: venterymine

Вебхук в amoCRM отправляется в файл, который вы задали в настройках Вебхука. Принимается в массив POST и записывается в файл webhook.txt

if ($_SERVER['REQUEST_METHOD'] === 'POST'){
    $fh = fopen("webhook.txt", 'a') or die("Сбой открытия");
    $data = json_encode($_POST);
    fwrite($fh, $data . PHP_EOL);
    fclose($fh);
}
→ Ссылка