используя php, как извлечь определенные данные из JSON-запроса выполнения диалогового потока и сохранить данные в переменной php - PullRequest
0 голосов
/ 12 ноября 2018

Используя php, как я могу получить конкретные данные из JSON-запроса выполнения диалогового окна и сохранить данные в переменной php?

Вот ответ JSON, который я получаю от моего агента диалогового потока

{
  "responseId": "e9106589-2a41-47c4-bdde-8f3cee8f40da",
  "queryResult": {
    "queryText": "switch on cfl",
    "action": "input.switchoncfl",
    "parameters": {
      "makeRequest": "cfl_on"
    },
    "allRequiredParamsPresent": true,
    "fulfillmentMessages": [
      {
        "platform": "ACTIONS_ON_GOOGLE",
        "simpleResponses": {
          "simpleResponses": [
            {
              "textToSpeech": "Sure. Turning CFL on... Anything else can I help you with?",
              "displayText": "Sure. Turning CFL on..."
            }
          ]
        }
      }
    ],
    "intent": {
      "name": "projects/smarthome-cf277/agent/intents/5be27f38-105d-4854-b62d-ec3a6de80cc7",
      "displayName": "1.1-Switch_on_CFL"
    },
    "intentDetectionConfidence": 1,
    "languageCode": "en"
  },
  "originalDetectIntentRequest": {
    "payload": {}
  },
  "session": "projects/smarthome-cf277/agent/sessions/ca0261aa-913f-96f1-b5aa-7755637d5ab7"
}

А вот мой php-код

<?php
    header("Content-Type: application/json");
    ob_start();
    $content = json_decode(file_get_contents('php://input'),true);
    $action = $content['parameters']['makeRequest'];
    ob_end_clean();
?>

Я хочу сохранить cfl_on значение в $ action переменную.Как я могу это сделать?этот php код не работает.

1 Ответ

0 голосов
/ 12 ноября 2018

Вы только что пропустили слой "queryResult" объекта.

$action = $content['queryResult']['parameters']['makeRequest'];
...