Проблема декодирования строки PHP JSON / мессенджер Facebook

У меня есть JSON, который выглядит так, и я использовал json_decode(file_get_contents('php://input'),true); превратить его в массив

{
"object": "page",
"entry": [
    {
        "id": "",
        "time":,
        "messaging": [
            {
                "sender": {
                    "id": ""
                },
                "recipient": {
                    "id": ""
                },
                "timestamp":,
                "message": {
                    "mid": "",
                    "seq": "",
                    "text": "STORE, POSTAL CODE"
                }
            }
        ]
    }
]

}

После того, как JSON был декодирован, я хотел получить текстовую часть JSON, поэтому я сделал

$message = ($post['entry'][0]['messaging'][0]['message']['text']
$query = explode(',', $message);

Затем я использовал $query[0] и $query[1] в некоторых SQL-запросах.

По какой-то причине, когда я жестко кодирую $message в некоторый текст, например $message = 'store, postal'; это сработает, но не тогда, когда я использую взорваться.

К вашему сведению, этот json исходит от Facebook, так как я использую API-интерфейс мессенджера.


person Somnium    schedule 05.10.2016    source источник
comment
Вы пытались сначала напечатать то, что вы получаете в $post['entry'][0]['message'][0]['message']['text']? если нет, то я предлагаю сначала проверить это один раз, потому что взрыв точно никогда не подведет.   -  person Dhanesh Mane    schedule 05.10.2016


Ответы (1)


  1. Убедитесь, что $post['entry'][0]['messaging'][0]['message']['text'] дает вам «МАГАЗИН, ПОЧТОВЫЙ КОД».
  2. Как я вижу, json содержит строки в верхнем регистре, а ваш пример в нижнем регистре. Возможно, это важно в вашем коде дальше.
person Alex Yarygin    schedule 05.10.2016
comment
Я посмотрел, что возвращает $post, и это то, что ожидается, МАГАЗИН, ПОЧТОВЫЙ ИНДЕКС просто предназначен для заполнителя, но на самом деле следует ожидать, что «какой-то магазин, почтовый индекс» в нижнем регистре, у меня также есть некоторая очистка текста, которую я делаю после. Кроме того, я протестировал его при жестком кодировании $message, и все работает так, как я предполагал, просто когда я разделяю его с входящим текстом, все портится. - person Somnium; 05.10.2016