Простой скрипт автопостинга ВКонтакте на PHP

АpertureLab

discord.gg/ExmRRb5
Забанен
Дней с нами
2.460
Розыгрыши
0
Сообщения
657
Репутация
43
Реакции
989
Надо было настроить автопостинг картинок для одного быдло сообщества.
На хостинге необходимо создать папки
images/anime1
images/anime2
images/anime3
и загрузить в них картинки (онли png gif jpg форматы инные не сожрет вк)

Настройте скрипт и залейте на хостинг. из бесплатных работает на 000webhost (там какая то залупа для https настроена). Настройте cron (например каждый час) и забудьте про паблик лет на 50 как один довн. Если вы начинающий "Админ" советую заливать видосики в паблик (с этого профита больше чем с постов с мемами)

Не работает на многих шаред-хостингах из-за того что я быдло и сделал через file_get_contents но если сделать через cURL то по идеи должно работать.
PHP:
<?php
$group_id     = '1'; //вместо 1 пишем id своего сообщества
$access_token = ''; //тут свой токен
$message      = 'Hello, world!'; //сюда пишем сообщение к посту (обычно хештег)


$folder_mas = array('images/anime1','images/anime2','images/anime3');
$images = array();
//выбираем случайную папку
$folder = $folder_mas[rand(0,2)];
$all_files = scandir($folder);
while ($i++ < sizeof($all_files)){
    //выбираем только изображения с расширением .png, .jpg и .gif
    if (!strstr($all_files[$i],".png") and !strstr($all_files[$i],".jpg") and
    !strstr($all_files[$i],".gif")) continue;
    array_push($images, $all_files[$i]);
}
$img_random = $images[rand(0,sizeof($images)-1)];
$img_src = $folder."/".$img_random;



// Получение сервера 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);
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('photo' => '@' . $img_src));

    //  если у вас php 5.6 + удалите // с начала строки у строки ниже
    //curl_setopt($ch, CURLOPT_POSTFIELDS, array('photo' => new CurlFile($img_src)));

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

    if (!empty($res->server)) {
        // Сохранение фото в группе.
        $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,
                'attachments'  => $res->response[0]->id
            );

            file_get_contents(
                'https://api.vk.com/method/wall.post?' . http_build_query($params)
            );
        }
    }
}
unlink($img_src);
?>
 
Последнее редактирование:
Ничего не понял, но спс
 
  • Like
Реакции: Mgman
Каеф
shit.png