Я пишу скрипт, который зарегистрирован как конечная точка для webhook. Я знаю, что он успешно зарегистрирован, потому что я пишу заголовок каждого запроса в мои журналы сервера. Вот пример:
Content-Type: text/xml; charset=UTF-8 User-Agent: Jakarta Commons-HttpClient/3.1 Host: =={obfuscated}== Content-Length: 1918
API, который я зарегистрировал, представляет собой POST-объект JSON для моего сценария, и я хотел бы проанализировать этот объект с помощью PHP. Как вы можете видеть из заголовка запроса, есть хороший большой жирный объект JSON, ожидающий анализа. Это кажется простым, но этого не было.
Сначала я попытался использовать $_POST['json'] или просто $_POST но поскольку данные не находятся в массиве, я не был уверен, как обращаться к нему так.
Я попытался использовать file_get_contents('php://input') и fopen('php://input', 'r') с json_decode() и без json_decode() но не повезло. Я не могу использовать http_get_request_body() так как сервер, на котором я работаю, не имеет PECL, и это не http_get_request_body() в мой контроль.
Существуют ли другие способы взаимодействия с объектом POST-ed JSON, который мне не хватает? Благодаря!
Спасибо другим за вклад. Оказывается, мне просто нужно было
$inputJSON = file_get_contents('php://input'); $input = json_decode($inputJSON, TRUE); //convert JSON into array
где второй параметр в json_decode возвратил объект в виде массива.
Надеюсь, это поможет кому-то еще!