GitHub Payload от Hook не возвращается?

Я создал простой скрипт, расположенный на моем общедоступном сервере.

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 на том же сервере.

Но сейчас я не могу даже показать полезную нагрузку.

1

Решение

Это застало меня врасплох.

Вам на самом деле нужно захватить все тело запроса, а не просто $_POST что вы можете сделать с помощью file_get_contents('php://input') чтобы получить тело в виде строки. С этим вы должны быть в состоянии json_decode это и получить то, что вам нужно.

Половина постов об этом онлайн еще ссылки $_POST['payload'] но кажется, что больше не используется.

Надеюсь это поможет!

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]