Здравствуйте. Есть функция для публикации постов в группу. Скрипт работает, но через раз. То публикует посты, то не публикует, не могу понять почему. Используется на 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)
);
}
}
}
}