Пишемо найпростіший спамер для ВКонтакті на Delphi

З кожним днем ​​у лавах програмістів відбувається поповнення. Хтось завжди хотів цим зайнятися і раптом наважився, хтось раптово вирішив змінити сферу діяльності та вивчити програмування, а комусь це потрібно, наприклад, для виконання своїх робочих обов'язків. Так чи інакше, завжди легко навчатися за готовими прикладами, коли всі найважчі питання вивчені за вас, а вам надається урок, викладений у досить спрощеній формі. Саме такий урок чекає на вас сьогодні.

Мета уроку

Мета цього уроку – написати найпростішу програму для ВКонтакте, яка через хвилину після запуску публікуватиме пост у зазначену спільноту від імені адміністратора, видаляючи при цьому попередню посаду, якщо така є.

З метою написання цієї програми було використано програмне забезпечення Embarcadero RAD Studio з Delphi XE6 на борту. Ви можете використовувати це програмне забезпечення або будь-яку іншу версію.

Процес створення спамеру полягає в написанні коду в кілька етапів, на кожному з яких пишеться частина спамеру. Урок передбачає, що у вас вже є базові знання у мові програмування Delphi, і спрямований швидше на демонстрацію роботи з API ВКонтакте. Нічого кардинально складного тут немає, тому просто дотримуйтесь інструкцій.

    Запускаємо Delphi, створюємо новий проект та додаємо на форму поля, необхідні для найпростішого спамеру:

У запит для отримання маркеру доступуaccess_tokenу процедурі вище були включені такі параметри:

Усі запити до ВКонтакті обов'язково виконуються через захищене з'єднання. Тому обов'язково потрібно зв'язати компонентиHTTPтаIdSSLIOHandlerSocketOpenSSL, а також покласти в папку з програмою файли dll-бібліотекssleay32.dllтаlibeay32.dll, якщо їх там немає.

    wall.get– отримання записів зі стіни користувача чи спільноти

Потрібні параметри:

  • owner_id– ID спільноти ВКонтакте, записи зі стіни якого необхідно отримати
  • access_token– маркер доступу тут необов'язковий, т.к. метод wall.get – загальнодоступний
  • wall.delete– видалення запису зі стіни користувача або спільноти
  • Об'єднавши ці методи і почаклувавши над ними, вийшла ось така простенька процедура, яку ми пов'язали з подією таймераOnTimer:

    І опишемо функціюPars, за допомогою якої в процедурі вище відбувається вилучення ID останньої посади з відповіді від сервера:

    У властивостях таймера в блоціObject Inspectorнашого Delphi встановлюємо властивістьIntervalрівним 60000 мілісекунд (1 хвилина). Це означатиме, що після запуску спамера повинна пройти 1 хвилина, перш ніж виконається основний алгоритм програми.

    Далі створюємо подію натискання кнопки «Запустити». Воно по кліку запускатиме таймер, якщо заздалегідь було отримано ключaccess_token:

    У результаті, скомпілювавши весь цей код і запустивши програму, можна насолодитися результатом:

    Висновок

    Звичайно, це ще дуже сирий варіант спамеру. Для повноцінної роботи та його застосування на постійній основі його ще варто доопрацювати, наприклад:

      Організувати роботу спамера по таймеру нескінченно, щоб пост публікувався і видалявся по кільцю автоматично, а не після натискання на кнопку «Запуск» знову і знову.

    Описати адекватну поведінку програми при досягненні групи добового ліміту додавання 50 постів на стіну.

  • Ібагато іншого.
  • Насправді це лише навчальний урок, і програма дійсно дуже проста. У ній можна зробити безліч функціональних доробок, щоб перетворити його на по-справжньому потужний інструмент. Але мета нашого уроку – навести приклад того, як загалом здійснюється робота в Delphi з API ВКонтакте для написання таких програм.

    Готовий вихідний код спамеру можна завантажити у прикріпленні до матеріалу.