Публикация записей на стену сообщества VK

Для начала вы должны быть авторизированы в VK и являться администратором группы или страницы. Далее нужно создать приложение.

3

Пост с ссылкой

Следующий PHP-код добавит пост с текстом и ссылкой на сайт.
Описание метода wall.post на https://vk.com/dev/wall.post

$group_id     = 'ID_ПРИЛОЖЕНИЯ';
$access_token = 'ACCESS_TOKEN';
$message      = 'Hello, world!';
$link         = 'https://snipp.ru/view/10';

// Отправляем сообщение.
$params = array(
	'v'            => '5.00',
	'access_token' => $access_token,
	'owner_id'     => '-' . $group_id, 
	'from_group'   => '1', 
	'message'      => $message,
	'attachments'  => $link
);

file_get_contents('https://api.vk.com/method/wall.post?' . http_build_query($params));
PHP

Результат

Картинка в ссылке берется с сайта. VK пытается найти картинку в тексте страницы, но можно ее указать мета-тегом в <head> страницы.

<link rel="image_src" href="https://example.com/image.png">
HTML

В тексте поста, переносы строк можно сделать с помощью \r\n.

4

Пост с картинкой

$group_id     = 'ID_ПРИЛОЖЕНИЯ';
$access_token = 'ACCESS_TOKEN';
$message      = 'Hello, world!';
$image        = __DIR__ . '/logo.png';

// Получение сервера vk для загрузки изображения.
$server = file_get_contents('https://api.vk.com/method/photos.getWallUploadServer?group_id=' . $group_id . '&access_token=' . $access_token . '&v=5.00');
$server = json_decode($server);

if (!empty($server->response->upload_url)) {
	// Отправка изображения на сервер.
	if (function_exists('curl_file_create')) {
		$curl_file = curl_file_create($image);
	} else {
		$curl_file = '@' . $image;
	}

	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $server->response->upload_url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_POST, 1);
	curl_setopt($ch, CURLOPT_POSTFIELDS, array('photo' => $curl_file));
	$upload = curl_exec($ch);
	curl_close($ch);

	$upload = json_decode($upload);
	if (!empty($upload->server)) {
		// Сохранение фото в группе.
		$save = file_get_contents('https://api.vk.com/method/photos.saveWallPhoto?group_id=' . $group_id . '&server=' . $upload->server . '&photo=' . stripslashes($upload->photo) . '&hash=' . $upload->hash . '&access_token=' . $access_token . '&v=5.00');
		$save = json_decode($save);
		if (!empty($save->response[0]->id)) {
			// Отправляем сообщение.
			$params = array(
				'v'            => '5.00',
				'access_token' => $access_token,
				'owner_id'     => '-' . $group_id, 
				'from_group'   => '1', 
				'message'      => $message,
				'attachments'  => 'photo' . $save->response[0]->owner_id . '_' . $save->response[0]->id
			);
			
			file_get_contents('https://api.vk.com/method/wall.post?' . http_build_query($params));
		}
	}
}
PHP

Результат

16.11.2016, обновлено 11.10.2019 7953

Поделится

Другие публикации

Изображения нужно сжимать для ускорения скорости загрузки сайта, но как это сделать? На многих хостингах нет...
26.10.2018 2094
cURL PHP – это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS....
14.11.2017 22430
Многие соцсети позволяют создавать приложения и через API получать данные пользователей, поэтому их использует для...
08.10.2019 49
Ниже приведён список MIME-заголовков и расширений файлов.
11.07.2019 297
После регистрации в системе эквайринга Сбербанка и получив доступ к тестовой среде, можно приступить к интеграции с...
22.10.2018 4858
В статье описана регистрация клиента, получения access token, примеры использования методов API Instagram на PHP.
14.03.2017 9829