Diversia
@Diversia

Что не так с публикацией постов в вконтакте?

Здравствуйте. Есть функция для публикации постов в группу. Скрипт работает, но через раз. То публикует посты, то не публикует, не могу понять почему. Используется на VPS. Кол-во постов около 5 в день с интервалом больше 1 часа. Подскажите пожалуйста, на что обратить внимание.
function vkpost($message, $img) {
	$group_id   = ''; // id сообщества (без минуса)
	$access_token = ''; // токен приложения

	// Получение сервера vk для загрузки изображения.
	$res = json_decode(file_get_contents(
		'https://api.vk.com/method/photos.getWallUploadServer?group_id='
		. $group_id . '&access_token=' . $access_token
	));
	
	if (!empty($res->response->upload_url)) {
		// Отправка изображения на сервер.
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $res->response->upload_url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_POST, 1);

		if ($img)
		{
			//curl_setopt($ch, CURLOPT_POSTFIELDS, array('photo' => '@' . "1.jpg"));
			//  если у вас php 5.6 + удалите // с начала строки у строки ниже
			curl_setopt($ch, CURLOPT_POSTFIELDS, array('photo' => new CurlFile($img))); // $_SERVER["DOCUMENT_ROOT"]
		}

		$res = json_decode(curl_exec($ch));
		curl_close($ch);

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

				if ($img)
				{
					$params['attachments'] = $res->response[0]->id;
				}
	
				$res2 = file_get_contents(
					'https://api.vk.com/method/wall.post?' . http_build_query($params)
				);
			}
		}
	}
}
  • Вопрос задан
  • 558 просмотров
Пригласить эксперта
Ответы на вопрос 1
userfordownload
@userfordownload
"Логи" бы желательно посмотреть, когда "пост" не срабатывает.
И там станет все понятно.
В частности переменные на каждом этапе:
$res =  
$res2  =

Лучше их не перезаписывать а записывать в новые , например
$res = json_decode(file_get_contents(
    'https://api.vk.com/method/photos.getWallUploadServer?group_id='
    . $group_id . '&access_token=' . $access_token
  ));

$_UploadServer = json_deco....
$res = json_decode(file_get_contents(
            'https://api.vk.com/method/photos.saveWallPhoto?group_id=' . $group_id
            . '&server=' . $res->server . '&photo='
            . stripslashes($res->photo) . '&hash='
            . $res->hash . '&access_token=' . $access_token
          ));

$_saveWallPhoto= json_decode(file_get_conte......
И видно будет по логам, где код отваливается, а так приходится только гадать.
Ответ написан
Ваш ответ на вопрос

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

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