【问题标题】:GitHub Payload from Hook not returning?来自 Hook 的 GitHub Payload 没有返回?
【发布时间】:2014-11-15 23:43:33
【问题描述】:

我在我的公共服务器上创建了一个简单的脚本。

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 的文件中。

但现在我什至无法显示有效负载。

【问题讨论】:

    标签: php git github githooks


    【解决方案1】:

    这也引起了我的注意。

    您实际上需要获取请求的完整正文,而不仅仅是$_POST,您可以使用file_get_contents('php://input') 将正文作为字符串获取。有了这个,你应该可以json_decode 得到你需要的东西。

    关于这个在线的帖子有一半仍然引用$_POST['payload'],但似乎不再使用了。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-21
      • 2021-04-25
      • 2023-03-15
      • 2018-03-22
      • 2011-02-02
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多