2017-05-21 5 views
1

Ich habe einen GitHub Webhook mit einer geheimen und ausgewählten Anwendung/x-www-form-urlencoded für den Inhaltstyp eingerichtet.So erhalten Sie Web-Hook-Daten mit GitHub mit PHP

Ich habe versucht, um zu suchen, aber es scheint nicht zu viele Informationen auf, wie sich die Post-Daten verwenden, wie zum Beispiel, was nicht in der POST-Anfrage GitHub sind, kann ich nur:

$_POST["secret"] oder es ist mehr dazu? Ich weiß, dass ich das selbst testen könnte, aber mit der Art und Weise, wie ich den Webhook eingerichtet habe, ist es schwierig, die Ausgabe zu sehen, und mehr Mühe, eine var_dump() für POST zu machen.

Also meine Frage ist, was ist das POST-Layout, wenn GitHub sendet eine POST-Anfrage, weil ich bin zu überprüfen, welcher Zweig wurde geschoben und validieren das Geheimnis auch.

+0

Haben Sie [die Dokumentation] (https://developer.github.com/webhooks/) überprüft? – rickdenhaan

+0

@rickdenhaan Die github docs sagt nicht, wie man diesen Header (oder irgendeinen Header) in PHP liest. und wie immer macht php in diesem fall etwas scheiß auf den headernamen. Obere es, und Ersetzen von '-' durch' _' (und Gott weiß was noch), so ist der endgültige PHP-Name tatsächlich '$ _SERVER ['HTTP_X_HUB_SIGNATURE']' – hanshenrik

+0

@ hugyt7 BTW Sie könnten dies interessant finden, das ist, wie ich Verwenden Sie Webhooks, um eine Entwicklungswebseite immer auf dem neuesten Stand zu halten. https://pastebin.com/JcUevvP3 – hanshenrik

Antwort

0

scheint es von PHP als $_SERVER['HTTP_X_HUB_SIGNATURE']

  • aber im Zweifelsfall, wie PHP einen Header, nenne eine Seite mit <?php phpinfo(~0); einrichten übersetzt wird, und führen Sie locken mit der URL wie curl http://ratma.net/phpinfo.php --header "X-Hub-Signature: test" -v 2>&1 | grep -i test, und Sie sollten Sehen Sie, wie die Kopfzeile aufgerufen wird. In diesem Fall habe ich <tr><td class="e">$_SERVER['HTTP_X_HUB_SIGNATURE']</td><td class="v">test</td></tr>
+1

Der Zugriff auf HTTP-Header mit '$ _SERVER' ist eine Umgehungslösung. Wenn Sie mit Apache arbeiten, sollten Sie [apache_request_headers()] (https://secure.php.net/apache_request_headers) verwenden. (oder sein Alias ​​'getallheaders()') Dies sollte ein Array zurückgeben, das einen Schlüssel namens 'X-Hub-Signature' enthält. – rickdenhaan

Verwandte Themen