我在公共服务器上创建了一个简单的脚本。
if($_GET['secret'])
{
if($_GET['secret'] == $update_key)
{
$payload = json_decode(stripslashes($_POST['payload']));
print_r($payload, TRUE);
}
}
else
{
die('You are not authorized');
}
然后我在我的GitHub项目中创建了一个WebHook,其应用程序类型为application/json
,指向上面的脚本。
现在当我推送到我的存储库,然后在管理webhooks页面上查看GitHub中响应的主体时,我发现当请求时,页面正文是空白的。
为什么不显示GitHub的有效负载?
注意:我已尝试使用相同的结果$_POST['payload']
和$_REQUEST['payload']
。
你为什么试图找个钩子?
简单,我想在GitHub上创建新版本时调用钩子,然后从有效负载中提取发行说明并将它们存储在同一服务器上名为release.txt
的文件中。
但是现在我甚至无法显示有效负载。
答案 0 :(得分:2)
这也引起了我的注意。
您实际上需要获取请求的全部内容,而不仅仅是$_POST
,您可以使用file_get_contents('php://input')
将主体作为字符串来获取。有了这个,你应该能够json_decode
并获得你需要的东西。
有关此在线帖子的一半仍然引用$_POST['payload']
,但似乎已不再使用了。
希望这有帮助!