простейший спамер вконтакте



Сегодня мы будем писать простейший спамер для Вконтакта.

 
Нам понадобится Delphi. В принципе, подойдет любая версия. Я буду писать на DEPHI XE 7. У кого нет — качайте!
 
Как будет работать наш спамер? Заходим во вконтакт, пишем в строке поиска слово «футболки» и нажимаем enter. Попали в новости, где куча рекламы интернет-магазинов с одеждой. У меня это выглядит так:
 


 
Любые сообщения, как на страницах пользователей, так и на страницах групп, попадают в общий список новостей и упорядочиваются лишь по дате сообщения, никаких ранжирований нету. Даже посты в пустых группах попадают сюда.
 
Как вы, возможно, догадались сейчас мы напишем небольшую программку, в учебных целях, которая будет раз в минуту добавлять пост в нашу группу и удалять предыдущий.
 
 

ШАГ 1. Создаем новый проект в DELPHI

 
Создали проект, делаем вот такую простую форму:
 


 
 

ШАГ 2. Получаем access_token

 
Для работы с vk api нам понадобится ключ доступа приложения. Создаем глобальную строковую переменную token:string.
Пишем процедуру получения ключа:
 

procedure TForm1.GetToken;
var
  temp: string;
  response:string;
begin


  try
    response:=idhttp1.Get('https://oauth.vk.com/token?grant_type=password&client_id=2274003&scope=wall&client_secret=hHbZxrka2uZ6jB1inYsH&username='+LoginEdit.Text+'&password='+PassEdit.text);
  except
    logmemo.Lines.Add('ошибка соединения при получении access token');

  end;

  if Pos('token', response)<>0 then begin
    temp:=copy(response, pos('access_token":"', response), pos('","expires_in', response)-3);
    delete(temp, 1, 15);
    token:=temp;
    logmemo.Lines.Add('token получен');
  end
  else
  begin
    logmemo.Lines.Add('token не получен');
  end;

end;

 
Не забываем связать компоненты IDHTTP и SSLIOHandlerSocketOpenSSL. Также, для новичков добавлю, что для HTTPS соединения необходима пара DLL библиотек, ssleay32.dll и libeay32. Скачайте их и добавьте в папку с программой.
 
 

ШАГ 3. Изучаем VK api

У вконтакта есть удобный API с подробной документацией. Нам необходимо три метода: добавление поста, удаление поста и id последнего поста на стене.
-wall.get
-wall.post
-wall.delete
 
 

ШАГ 4. Пишем главный цикл

 
Цикл у нас будет вызываться таймером. Поставим интервал таймера в одну минуту. По-умолчанию таймер выключен. При нажатии на кнопку запуска включаем таймер.

procedure TForm1.StartButtonClick(Sender: TObject);
begin
  if length(token)>0 then timer1.Enabled:=true; // Если token не пустой, то запускаем таймер
end;

 
Код обработки события таймера:
 

procedure TForm1.Timer1Timer(Sender: TObject);
var
  response:string;
  id:string;
  pos1:integer;
  Info: TStringList;
begin
  // Получаем ID последнего поста
  try
    response:=idhttp1.Get('https://api.vk.com/method/wall.get?owner_id=-'+GroupEdit.text+'&access_token='+token);
  except
    logmemo.Lines.Add('Ошибка получения ID поста');
  end;
  id:=pars(response,'"id":',',"');
  sleep(500);
  // Удаляем последний пост
  if length(id)>0 then
    begin
    try
      response:=idhttp1.Get('https://api.vk.com/method/wall.delete?owner_id=-'+GroupEdit.text+'&post_id='+id+'&access_token='+token);
    except
      logmemo.Lines.Add('Ошибка удаления поста');
    end;
  end;
  sleep(500);
  // Создаем новый пост
  try
    response:='';
    Info := TStringList.Create;
    Info.Add('owner_id=-'+GroupEdit.text);
    Info.Add('from_group=1');
    Info.Add('access_token='+token);
    Info.Add('message='+messagememo.text);
    Info.Add('attachments='+attachedit.text);
    response:=idhttp1.post('https://api.vk.com/method/wall.post',info);
  except
    logmemo.Lines.Add('Ошибка создания поста');
  end;
  if pos('post_id',response)>0 then logmemo.Lines.Add('Пост добавлен!') else logmemo.Lines.Add('Пост не добавлен!');
  Info.Free;
end;

 
 
Готово!
 

Тестируем нашу программу

 

Запускаем

 

 
Вот так выглядит наш автоматически сделанный пост

 

 
И вот наш пост уже в поиске по ключевому слову «футболки»!

 

 
 
P.S.
Конечно, это учебный пример, и его надо немного доделать для полноценной работы. В сутки в группу можно добавлять 50 постов, поэтому надо научить программу при достижении лимита постов автоматически создавать новую копию группы.
 
Помните, что вместо фоток можно делать wiki-страницы — будет выглядеть точно также как фотография, но при нажатии на нее откроется Ваша ссылка.
 
Таким вот незамысловатым образом много людей зарабатывают деньги 🙂 поэкспериментируйте с запросами в поиске. Особенно на порнотематику. Хитрые делают фотографии в виде видеоролика, по нажатию на который пользователь отправляется на партнерку.
 
Исходник программы лежит здесь
 
Автор: Pavel Germanika