Получить запись с вк

221
27 февраля 2019, 15:10

Как получить 5 записей (текст, URL картинки) с сообщества ВКонтакте на JS или PHP

Не получается

header('Content-type: text/html; charset=utf-8');
$wall_id="-95098766"; // Положительное число: пользователь. Отрицательное: группа.
$count="20"; // Количество записей, которое необходимо получить. Максимальное значение: 100. 
$api = file_get_contents("http://api.vk.com/method/wall.get?owner_id={$wall_id}&count={$count}");
$wall = json_decode($api,true);
foreach ($wall['response'] as $item => $result) {
echo $result['text'].'<hr/>';
}
Answer 1

Как уже сказал @Eddir, у вас отсутствует обязательный параметр access_token, прочтите официальную документацию для чего он используется, как его можно и нужно получить.

В последнем своем ответе тоже описывал запросы к VK API, там написал две функции curl и vk, для удобства отправки запросов, рекомендую ознакомиться с ними и использовать Вот код, который вам нужен с использованием вышеописанных функций:

$access_token = 'b037e92e5c403113449f2b3962279bgf341f5934d22';
$owner_id = '-95098766';
$count = 5;
$get = vk('wall.get', [
    'owner_id' => $owner_id,
    'v' => '5.85',
    'access_token' => $access_token,
    'count' => $count
]);
// Если ответ response, то продолджаем
if (isset($get->response))
{   
    // Продолджаем работу, если записей больше 0
    if ($get->response->count > 0)
    {
        // Проходим циклом по полученным записям и записываем в массив c ключом 
        // [id] (id записи), а в зачение[] записывается подмассив с фото
        foreach ($get->response->items as $key => $value)
        {
            $new[$value->id] = [
                'text' => $value->text,
                'photo' => ($value->attachments[0]->photo) ? $value->attachments : 0
            ];
        }
    }
    // Выводим на экран наш собранный массив, и делаем с ним что угодно,
    // например далее получаем из его ссылки на изображения
    print_r($new);
}

Важно: в примере работа с объектами, а не с массивами, если вам нужно из объекта $new получить обычный массив $new, то $new = (array) $new; Полный код на pastebin. Вот и все :)

upd: Совсем забыл, что вам нужен еще и текст, тогда вообще никаких проблем, исправил.

Answer 2

Ваш код не работает по причине того, что Вы не указали access_token в url запроса. Советую использовать хотя бы минимальные средства дебага, как var_dump. Сразу после file_get_contents пропишите var_dump($api); , чтобы знать наверняка, что вернул Вам в ответ ВК.

А для того, чтобы сделать алгоритм рабочим, изучите способы получения access_token по ссылке https://vk.com/dev/access_token . Проще всего получить токен сообщества или сервисный токен.

READ ALSO
502 bad gateway nginx

502 bad gateway nginx

При импорте xml получаю данную ошибку, когда в xml более 100 к записейПодскажите , какие конфиги надо подкрутить на сервере, чтобы увеличить параметры...

192
Как сделать такую выборку sql по датам?

Как сделать такую выборку sql по датам?

Делаю афишу(модуль dle 13) для сайта надо сделать выборку Есть таблица с полем(дат формата Y-m-d) xfields по которому надо сделать выборку, надо выбрать...

195
Не работает отправка изображения API VK

Не работает отправка изображения API VK

Делаю отправку фото и сообщения в группу через VK API вроде и фото грузит, и ошибок не выдает, но в группе пусто, может кто сталкивался

209
Не сохраняется изображения php

Не сохраняется изображения php

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

176