【发布时间】:2017-10-21 08:19:14
【问题描述】:
我已经设置了一个 GitHub 网络钩子,其中包含一个秘密并为内容类型选择了 application/x-www-form-urlencoded。
我试图四处搜索,但似乎没有太多关于如何使用发布数据的信息,例如 GitHub 在 POST 请求中包含什么,我可以这样做:
$_POST["secret"] 或者还有更多?我知道我可以自己测试这个,但我设置 webhook 的方式很难看到输出,而且为 POST 做一个 var_dump() 更痛苦。
所以基本上我的问题是 GitHub 发送 POST 请求时的 POST 布局是什么,因为我希望验证推送了哪个分支并验证秘密。
【问题讨论】:
-
你检查过the documentation吗?
-
@rickdenhaan github 文档没有说明如何在 PHP 中读取该标头(或任何标头)。和往常一样,php 在这种情况下对标头名称进行了一些操作。将其大写,并将
-替换为_(天知道还有什么),所以最终的PHP 名称实际上是$_SERVER['HTTP_X_HUB_SIGNATURE'] -
@hugyt7 顺便说一句,你可能会觉得这很有趣,这就是我使用 webhook 使开发网站始终与主 repo 保持同步的方式; pastebin.com/JcUevvP3
-
文档确实说了以下内容:“
application/x-www-form-urlencoded内容类型会将 JSON 有效负载作为称为“有效负载”的表单参数发送。”所以$_POST['payload']中应该有一个JSON字符串@