2016-10-18 3 views
0

Я установил Webhook, чтобы получать уведомления, отправленные на страницу PHP на моем сервере. Запрос на уведомление на мой сервер, как это:PHP Получить данные JSON POST

POST /message/receive HTTP/1.1 
Host: http://www.yoururl.com/zipwhip/api/receive 
Content-Length: 581 
Content-Type: application/json; charset=UTF-8 

{ "body":"Thanks for texting, this is an auto reply!", 
    "bodySize":42, 
    "visible":true, 
    "hasAttachment":false, 
    "dateRead":null, 
    "bcc":null, 
    "finalDestination":"4257772300", 
    "messageType":"MO", 
    "deleted":false, 
"statusCode":4, 
"id":634151298329219072, "scheduledDate":null, "fingerprint":"132131532", "messageTransport":9, "contactId":3382213402, "address":"ptn:/4257772222", 
"read" "dateCreated":"2015-08-19T16:53:45-07:00", "dateDeleted":null, 
    "dateDelivered":null, 
    "cc":null, 
    "finalSource":"4257772222", 
} "dev 

Я попытался с помощью следующих действий, чтобы преобразовать данные в формате JSON в строку, я могу работать с, но я не получаю ничего до сих пор:

$inputJSON = file_get_contents('php://input'); 
$input= json_decode($inputJSON, TRUE); 

Все, что я читал, указывает на это должно работать - я проверил следующее, и это на самом деле работает:

$webhookContent = ""; 

    $webhook = fopen('php://input' , 'rb'); 
    while (!feof($webhook)) { 
     $webhookContent .= fread($webhook, 4096); 
    } 
    fclose($webhook); 

Я пытаюсь понять, почему file_get_contents («PHP: // ввод»); не работает, когда все, что я прочитал, указывает, что это функция, которую я должен использовать, и почему fopen ('php: // input', 'rb'); работает вместо этого?

Если я var_dump ($ inputJSON) я получаю:

$inputJSON = file_get_contents('php://input'); 
$input= json_decode($inputJSON); 

Я думаю:

string(527) "{ "body":"Thanks for texting, this is an auto reply!", 
    "bodySize":42, 
    "visible":true, 
    "hasAttachment":false, 
    "dateRead":null, 
    "bcc":null, 
    "finalDestination":"4257772300", 
    "messageType":"MO", 
    "deleted":false, 
"statusCode":4, 
"id":634151298329219072, "scheduledDate":null, "fingerprint":"132131532", "messageTransport":9, "contactId":3382213402, "address":"ptn:/4257772222", 
"read" "dateCreated":"2015-08-19T16:53:45-07:00", "dateDeleted":null, 
    "dateDelivered":null, 
    "cc":null, 
    "finalSource":"4257772222", 
}" 

var_dump ($ ввода) возвращает NULL

+0

Так что же не работает, что делает 'var_dump ($ inputJSON)' вам? – jeroen

+2

Ваш JSON не подходит для меня. – simon

+0

@jeroen Я отредактировал вопрос, чтобы включить результат var_dump ($ inputJSON) – user982124

ответ

0

Ныне работает для меня следующее моя проблема использовалась:

$input= json_decode($inputJSON, TRUE); 

вместо просто:

$input= json_decode($inputJSON); 
Смежные вопросы