Я создал простой скрипт, расположенный на моем общедоступном сервере.
if($_GET['secret'])
{
if($_GET['secret'] == $update_key)
{
$payload = json_decode(stripslashes($_POST['payload']));
print_r($payload, TRUE);
}
}
else
{
die('You are not authorized');
}
А затем я создал WebHook в своем проекте GitHub с типом приложения application/json
это указывает на сценарий выше.
Теперь, когда я захожу в свой репозиторий, а затем смотрю на тело ответа в GitHub на странице управления веб-крючками, я вижу, что когда это было запрошено, тело страницы было пустым.
Почему он не отображает полезную нагрузку от GitHub?
НОТА: Я пробовал оба $_POST['payload']
а также $_REQUEST['payload']
с такими же результатами.
Почему вы пытаетесь поймать крючок?
Проще говоря, я хочу вызвать ловушку, когда я создаю новый выпуск на GitHub, а затем извлекаю примечания к выпуску из полезной нагрузки и сохраняю их в файле с именем release.txt
на том же сервере.
Но сейчас я не могу даже показать полезную нагрузку.
Это застало меня врасплох.
Вам на самом деле нужно захватить все тело запроса, а не просто $_POST
что вы можете сделать с помощью file_get_contents('php://input')
чтобы получить тело в виде строки. С этим вы должны быть в состоянии json_decode
это и получить то, что вам нужно.
Половина постов об этом онлайн еще ссылки $_POST['payload']
но кажется, что больше не используется.
Надеюсь это поможет!
Других решений пока нет …