在PHP中使用POSTed JSON

时间:2018-01-17 17:31:01

标签: php json

所以我正在尝试创建一个处理程序来响应Plex使用PHP发送的webhook功能发送的JSON,而我却没有看到我出错的地方。

令人讨厌的是,当我自己写一个快速卷曲请求时似乎工作正常,但是当从Plex发送请求时它只是不起作用。使用file_put_contents我可以看到$ _POST正在按预期接收JSON,但是除此之外每个变量都是空的。将json_last_error输出到文件会给我0。

这里的任何帮助都会很棒。我不是一个专家,只是不明白为什么这不起作用。我也尝试不在$ _POST上使用json_decode,而是将其视为字符串,使用strpos查找特定事件,玩家和类型,但是在所有情况下也返回false。

$jsonText = $_POST;
$myArray = json_decode($jsonText, true);

$type = $myArray["Metadata"]["type"];
$player = $myArray["Player"]["title"];
$event = $myArray["event"];

if($type == "movie" && $player == "TV UE40K5500") {
    switch($event) {
        case "media.play":
        case "media.resume":
            ifttt("tv_play");
            break;
        case "media.pause":
        case "media.stop":
            ifttt("tv_stop");
            break;       
    }
}

1 个答案:

答案 0 :(得分:0)

谢谢大家的建议。我添加了几个日志文件写入,以找出我丢失信息的地方。我终于能够推断出我需要访问$_POST["payload"]以获取从Plex发送的JSON。

我确实从现在开始学会了一定程度的日志记录,因为它使错误检查变得容易了一千倍。