我是webhooks的新手,每当我推送到我的仓库时,我都会尝试自动部署到我的网站.
我将我的bitbucket repo上的webhook设置为一个包含一个简单的PHP脚本的URL:
if(isset($_POST['payload'])) {
logMsg("Got stuff\n");
} else {
logMsg("No stuff\n");
}
在我推送到我的仓库之后,webhook将请求脚本正常但没有发送有效负载.我的日志文件总是说“没有东西”.
我错过了什么?
解决方法:
新的Bitbucket webhooks在请求体中发送有效负载,而不是像之前的“服务”那样在请求头中发送.
因此,要访问有效负载,您必须读取请求正文,如下所示:
$payload = file_get_contents('PHP://input');
或者像那样:
$payload = stream_get_contents(STDIN);
Etvoilà!