Вывод записей со стены сообщества Вконтакте на PHP
0

Вывод записей со стены сообщества Вконтакте на PHP

Вчера вечером, один человек попросил вывести записи со стены сообщества вконтакте на его сайт, который написан на языке программирования PHP. Проблема заключалась в том, что его морозил исполнитель, который то кормил завтраками, то не хотел делать, а то просто просил данные от его страницы вконтакте. Так вот я просто и популярно распишу до мелочей, как вывести записи сообщества vk на своем сайте с помощью php, причем бесплатно!

 

По сути можно вывести не только новости, но и всё что угодно и не обязательно в группе. Но для этого уже читайте официальную документацию VK API.

 

Итак поехали, немного о том, что мы с вами в данной статье будем делать:

  1. Создадим Standalone-приложение и возьмем его token
  2. Сформируем ссылку-запрос для получения данных в json формате используя VK API
  3. Напишем небольшой скрипт на php и в нем выведем информацию, обработав правильно запрос с информацией

Вот собственно и всё по нашему плану, теперь перейдем к реализации. А начнем мы по порядку с самого первого пункта.

 

1. Создадим Standalone-приложение и получим его токен:

Для создания приложения можете в управление приложениями, в меню вы найдете пункт "Управление" - туда то вам и надо.

 

Если у вас нет такого пункта, не отчаивайтесь. Вы можете включить его показ в настройках аккаунта вк, либо можете перейти просто по ссылке: Управление приложениями вк.

 

Нажимаем кнопочку "Создать приложение" и на следующей странице вводим название приложения и выбираем тип "Standalone-приложение", нажимаем кнопку "Подключить приложение". 

Создание Standalone-приложения вконтакте

Идем дальше, нам нужно получить наш token этого приложения, который мы будем использовать в нашем запросе для получения информации через VK API. Для этого перейдем в редактирование приложения и откроем вкладку "Настройки". На ней нам нужно взять "Сервисный ключ доступа" - это и есть наш токен, для запроса.

Получаем токен Standalone-приложения вк

С первой задачей мы справились, можем двигаться дальше.

 

2. Сформируем ссылку-запрос для получения данных в json формате используя VK API:

Теперь нам нужно сформировать ссылку-запрос с помощью которого мы будем получать данный, используя VK API. Получать как вы уже поняли, мы будем в json формате, вконтакте стандартно отдает информацию через API с помощью json.

 

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

https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id=id_группы&count=количество_записей&v=5.67&access_token=токен

Думаю тут предельно понятно всё, но уточню некоторые моменты:

method - здесь указываем используемый метод, мы в данный момент используем wall.get.

owner_id - Здесь мы указываем ID группы или страницы пользователя вк. Будьте внимательнее, если мы хотим использовать группу (сообщество) и работать с ним, то перед ID должен стоять знак "-" и будет это выглядеть примерно так "-87165069".

count - Количество получаемых данных. Указывайте целое число от 1 до 100. Больше 100 получить не получится, ограничения VK API.

access_token - Токен, который мы получали ранее в ходе 1 пункта. Он и будет давать возможность работать с данными.

v=5.67 - Версия используемого VK API. Можете в целом не менять.

 

На этом здесь всё, остальную информацию по VK API можете найти на сайте вк, в разделе для разработчиков. А тем временем идем дальше...

 

3. Напишем небольшой скрипт на php и в нем выведем информацию, обработав правильно запрос с информацией:

Данные при получении по такой вот ссылке (из пункта 2), мы получаем в формате json, так уж сложилось, что VK API отдает всю инфу в таком типе... Нам же нужно преобразовать всё в массив, для дальнейшей обработки и значения этого массива вывести.

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

// ID нашего сообщества или страницы вконтакте
$wall_id="-86529522";
 
// Удаляем минус у ID групп, что мы используем выше (понадобится для ссылки).
$group_id = preg_replace("/-/i", "", $wall_id);
 
// Количество записей, которое нам нужно получить.
$count = "3";
 
// Токен
$token = "2e73ed992e73ed992e73ed99da2e2e80f322e732e73ed997700261c9465df4bf4a1eeff";
 
// Получаем информацию, подставив все данные выше.
$api = file_get_contents("https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id={$wall_id}&count={$count}&v=5.58&access_token={$token}");
 
// Преобразуем JSON-строку в массив
$wall = json_decode($api);
//var_dump($wall);
 
// Получаем массив
$wall = $wall->response->items;
 
// Обрабатываем данные массива с помощью for и выводим нужные значения
for ($i = 0; $i < count($wall); $i++) {
	echo "<p><b>".($i + 1)."</b>. <i>".$wall[$i]->text."</i><br /><span>".date("Y-m-d H:i:s", $wall[$i]->date)."</span>"; // Выводим записи
	echo "<br /><span>https://vk.com/wall-{$group_id}_{$wall[$i]->id}</span></p><br>";
}

Немного информации по этому коду:

$wall[$i]->date - Получение даты, где date - название поля, которое нам нужно получить. С остальными все стандартно, меняем название поля из массива на нужное и получаем значение. На странице с информацией по wall.get VK API - можете найти названия полей и пример детального кода.

 

Вот собственно и всё. Для наглядного примера я взял группу VK FEST, так как в моей нет никаких записей с текстом, а вывести он сможет только дату и ссылку на пост (про картинки и прочие медиа я не говорю).

Пишем небольшой скрипт на php для вывода новостей VK

На этом всё, код можете допилить под себя и доделать вывод тех элементов, какие вам нужны. Спасибо за внимание, если остались какие-то вопросы или дополнения, пишите их в комментариях разберем, дополним...

Запись опубликована В категории: PHP

Shnapik

Вебмастер с опытом ищет приют! Возьмите меня, а то меня рвут!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *