VK

Вывод постов из ВК на сайт PHP

В одном из наших проектов основное требование было, это вывод записей с сообщества VK на сайт.

Сам сайт соответственно был полностью на PHP (Не CMS). В данной статье разберемся, как вывести посты из сообщества вконтакте к себе на сайт.

Так же внимательно читайте официальную документацию VK API

Создаем приложение и получаем Token

Для того, чтобы создать приложение переходим в раздел Для разработчиков далее в Мои приложения и нажимаем кнопку Создать

Вводим название своего приложения, и в платформе выбираем Standalone-приложение

Затем нажимаем на кнопку Подключить приложение, потребуется подтверждение через телефон.

После подтверждения по желанию заполняем поля:

И сохраняем изменения

Далее переключаемся на вкладку Настройки где мы и получим наш Token (еще раз потребуется подтверждение через телефон)

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

Формируем запрос на получение данных

Далее представлен код, с помощью которого мы сформируем запрос на получение данных в виде ссылки

<?
	$wall_id = "-20305928";
	$group_id = preg_replace("/-/i", "", $wall_id); // Удаляем минус у ID групп, понадобится для ссылки.
	$count = "50";
	$token = "b91b4b99b91b4b99b91b4b992bb962e673bb91bb91b4b99d87dd0c77056182eda705cff";
	$api_url = file_get_contents("https://api.vk.com/api.php?oauth=1&method=wall.get&owner_id={$wall_id}&count={$count}&v=5.131&access_token={$token}");
	$response = json_decode($api_url, true);
?>

Разберем код и рассмотрим главные параметры:

$wall_id — ID сообщества с которого будем выводить посты

$count — Количество выводимых постов

$token — Наш токен, который мы получали изначально (не забываем прописать свой)

$api_url — Формирование ссылки на запрос

$response — Преобразование JSON-строки в массив

Выводим посты на страницу

Выводить будем с использованием цикла foreach

<? foreach($response['response']['items'] as $post): ?>
<? if(isset($post['text'])): ?>
	<div id="post<?=$post['id']?>" class="post-item">
		<img src="<?=$post['attachments'][0]['photo']['sizes'][4]['url']?>" class="main-img" alt="">
	<p class="post-text">
		<?=$post['text']?>
	</p>
	<?=date("Y-m-d H:i:s", $post['date']);?><br />
	<? echo '<a href="https://vk.com/wall-'.$group_id.'_'.$post['id'].'" target="_blank">https://vk.com/wall-'.$group_id.'_'.$post['id'].'</a>';?>
	</div>
<? endif; ?>
<? endforeach; ?>	

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

На момент написания статьи использовалась последняя актуальная версия API 5.131

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

13 октября, 2021 / , , ,