Пишемо найпростіший спамер для ВКонтакті на 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 – загальнодоступний
Об'єднавши ці методи і почаклувавши над ними, вийшла ось така простенька процедура, яку ми пов'язали з подією таймераOnTimer:
І опишемо функціюPars, за допомогою якої в процедурі вище відбувається вилучення ID останньої посади з відповіді від сервера:
У властивостях таймера в блоціObject Inspectorнашого Delphi встановлюємо властивістьIntervalрівним 60000 мілісекунд (1 хвилина). Це означатиме, що після запуску спамера повинна пройти 1 хвилина, перш ніж виконається основний алгоритм програми.
Далі створюємо подію натискання кнопки «Запустити». Воно по кліку запускатиме таймер, якщо заздалегідь було отримано ключaccess_token:
У результаті, скомпілювавши весь цей код і запустивши програму, можна насолодитися результатом:
Висновок
Звичайно, це ще дуже сирий варіант спамеру. Для повноцінної роботи та його застосування на постійній основі його ще варто доопрацювати, наприклад:
-
Організувати роботу спамера по таймеру нескінченно, щоб пост публікувався і видалявся по кільцю автоматично, а не після натискання на кнопку «Запуск» знову і знову.
Описати адекватну поведінку програми при досягненні групи добового ліміту додавання 50 постів на стіну.
Готовий вихідний код спамеру можна завантажити у прикріпленні до матеріалу.