1

Webhook 正在向我提供的 URL 发送一些数据。我正在尝试捕获数据。这是我正在使用的代码:-

if ($this->input->server('REQUEST_METHOD') == 'POST')
{
    file_put_contents('test.txt', file_get_contents('php://input'));
    ......................
}

保存在 txt 文件中的数据是这样的:-

{
  "created_at": "2017-04-04 12:03:07 UTC",
  "href": "http://api.groovehq.com/v1/tickets/131",
  "links": {
    "customer": {
      "id": "0454984580",
      "href": "http://api.groovehq.com/v1/customers/ncc2017customer@gmail.com"
    },
    "drafts": {
      "href": "http://api.groovehq.com/v1/tickets/131/drafts"
    },
    "state": {
      "href": "http://api.groovehq.com/v1/tickets/131/state"
    },
    "messages": {
      "href": "http://api.groovehq.com/v1/tickets/131/messages"
    }
  },
  "number": 131,
  "priority": "low",
  "resolution_time": null,
  "state": "unread",
  "title": "gh",
  "updated_at": "2017-04-04 12:03:07 UTC",
  "system_updated_at": "2017-04-04 12:03:07 UTC",
  "assigned_group_id": null,
  "assigned_group": null,
  "closed_by": null,
  "tags": [

  ],
  "mailbox": "Inbox",
  "mailbox_id": "1923237790",
  "message_count": 1,
  "summary": "Complaint Date: 2017-4-22 Service Provider: Airtel Type of Complaint: Billing NCC need to do: Investigate and resolve the issue Complaint Details: Vb",
  "type": "API",
  "snoozed_until": null,
  "last_message": "Complaint Date: 2017-4-22<br />\nService Provider: Airtel<br />\nType of Complaint: Billing<br />\nNCC need to do: Investigate and resolve the issue<br />\nComplaint Details: Vb",
  "assignee": null,
  "app_url": "https://matrixdroid.groovehq.com/groove_client/tickets/44746020",
  "app_customer_url": "https://matrixdroid.groovehq.com/groove_client/contacts/customers/17295897",
  "customer_name": "ncc2017customer@gmail.com",
  "last_message_plain_text": "Complaint Date: 2017-4-22\nService Provider: Airtel\nType of Complaint: Billing\nNCC need to do: Investigate and resolve the issue\nComplaint Details: Vb"
}

现在,我需要获取links->customer->href数据我怎样才能得到这个?

我试过这个: -

$json_data = file_get_contents('php://input');
$json_decode_data = json_decode($json_data);
file_put_contents('test.txt', $json_decode_data['links']['customer']['href']);

txt文件中没有写入任何内容。如何解析 href 数据?

4

2 回答 2

2

json_decode() 默认会生成一个 StdClass。如果您想要一个数组,请添加一个 true 参数。然后在引用它时使用正确的变量,即 $data:

$data = json_decode(file_get_contents('php://input'), true);
于 2017-04-04T12:24:59.173 回答
0

要获取 的数据href,您需要执行以下操作

<?php 
$data = json_decode(file_get_contents('test.txt'));
echo '<pre>';
print_r($data->links->customer->href);
?>
于 2017-04-04T12:25:49.743 回答