Возможно, вы так много слышали о WebHooks в последнее время, и на многих веб-сайтах, особенно на Github, вы, возможно, видели настройки WebHooks. так что же такое WebHooks?

WebHooks

Концепция WebHook проста. WebHook - это обратный вызов HTTP: HTTP POST, который происходит, когда что-то происходит; простое уведомление о событии через HTTP POST.

Веб-приложение, реализующее WebHooks, отправляет сообщение POST на URL-адрес, когда происходят определенные события. Веб-перехватчики - это способ получать ценную информацию , когда это происходит, вместо того, чтобы постоянно запрашивать эти данные и большую часть времени не получать ничего ценного. WebHooks обладают огромным потенциалом и ограничены только вашим воображением!

Таким образом, это в основном то же самое, что и API, но в этом случае вы не отправляете никакого ответа. вы где-то размещаете свой API, укажите этот URL-адрес, например, для полосы, а затем для любых событий, происходящих в полосе, он отправит данные на этот URL-адрес. так что вы будете получать уведомления всякий раз, когда кто-то платит в вашем приложении с помощью полосы.

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

Самый известный платежный шлюз Stripe предоставляет WebHooks для многих событий, например, когда кто-то платит в вашем приложении, а затем в источнике. платное событие запускается. поэтому вы можете создать простой API, который анализирует данные POST и ищет положительное событие, например новый заказ. всякий раз, когда происходят такие события, он издает звуковой сигнал. разве это не весело? Это что-то вроде звука счетчика наличных, когда вы получаете новый заказ.

Выполнение

WebHook можно реализовать так же, как и любой другой API. вы можете использовать любой язык, который вам удобен. Я использовал здесь php, потому что мне нравится легкий фреймворк php Silex для быстрого создания API.

Перейдите в папку вашего проекта php и установите Silex с помощью композитора:

composer require silex/silex "2.0"

создайте index.php и вставьте ниже код:

<?php 
    require_once __DIR__.'/../vendor/autoload.php';
    $app = new Silex\Application();
    $app->post('/webhook', function (Request $request) {
        header('Content-Type: application/json');
        $request = file_get_contents('php://input');
        $req_dump = print_r( $request, true );
        $fp = file_put_contents( 'webhook_request.log', $req_dump );
    });
    $app->run();
    ?>

Контрольная работа

Вызовите этот URL-адрес, и он сохранит запрос POST в webhook_request.log в папке проекта. Но проверьте разрешение папки, если вы используете Linux. Он ничего не напечатает и выдаст ошибку, если у сервера недостаточно прав для записи.

Как правило, этот URL-адрес будет вызываться другим приложением, но для тестирования вы можете его вызвать. Если вы хотите протестировать WebHooks на своем локальном хосте, то проверьте Ultrahook. Это бесплатная утилита, которая направляет все WebHooks на ваш локальный хост.

Вывод

И это все! Это сработало для вас? Пожалуйста, оставьте любые вопросы и комментарии ниже!

Спасибо за чтение!

Если вы нашли эту статью полезной, 👏👏👏.