@CACHE_GET_FIELD
Начинающий разработчик

Как разобрать JSON массив от VK API?

Доброго времени суток. Я хотел бы реализовать такую штуку, которая анализирует последние 10 сообщений, и, в случае если сообщение не проверено - мы читали, что отправил пользователь, и если сообщение, скажем, найдено в "Базе", или же на данный момент - Массиве, то мы выбирали одно из действий, которое соответствует для данного сообщения.

Опустим сложности, мне нужно получить массив через CURL, заготовка есть, все получается, я получаю json объект, и сразу его декодирую.

<?php
$token = 'TOKEN';

    $url = "https://api.vk.com/method/messages.get?out=0&offset=0&filtres=0&last_message_id=0&count=10&v=5.34&access_token=".$token."";

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);
    $page = curl_exec($curl);

    $exited = json_decode($page, true);
?>


В результате я получаю это дело:
5a993fd08cb84362317037.png

Каким образом я могу получить параметры:
  1. Текст сообщения
  2. ID пользователя, который отправил сообщение
  3. ID диалога
  4. ID сообщений


Помогите, пожалуйста. Мне нужно просто записать данные в переменную, и не более. Только учу работу с PHP, но пока что идет тяжеловато.

P.S Без File_Get_Contents
  • Вопрос задан
  • 1782 просмотра
Решения вопроса 2
dark_tke
@dark_tke
Помогли? Отметь решением!
Текст сообщения:
$exited->response[0]->items[0]->text
ID пользователя, который отправил сообщение
$exited->response[0]->items[0]->user_id
ID сообщений
$exited->response[0]->items[0]->id

А вообще читайте документацию к методам, в апи контакта все ОЧЕНЬ подробно расписано.

P.S. и да, если вы так будете оформлять вывод кода, помощи вы будете ждать очень долго. Я просто знаю что за переменные, и как они вызываются. Многие в такой простыне кода даже разбираться не будут

P.P.S и еще один момент, на который я не обратил внимание, но на что указал jasonOk, указывайте json_decode($page); , т.е. без true
Ответ написан
lidacriss
@lidacriss
wtf
Исходя из скрина, если там var_dump, то, наверное так:
$items = $exited['response']['items'];
foreach ($items as $item) {
    echo 'message id: ' . $item['id'] . '<br>' . PHP_EOL;
    echo 'message text: ' . $item['body'] . '<br>' . PHP_EOL;
    echo 'user id: ' . $item['user_id'] . '<br>' . PHP_EOL;
    // и тд
}

А вообще читайте документацию.
Ну и то, что приходит, там обычно и так все видно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Noizefan
@Noizefan
Неуверенность в этой теме вызвана у Вас отсутствием опыта работы с JSON впринципе.
Для лучшего понимания рекомендую самому построить какой-нибудь массив и самому же распарсить.
В мире API, стандарт выдачи данных для которых именно JSON, полезно самому уметь разбирать и собирать его.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы