• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Помогите Со Спамером Вк

Статус
Закрыто для дальнейших ответов.
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
Не компилируется, на двух Unit ошибки
На главной форме ошибка в Synchronize(Sync); Красное подчеркивание в Sync, и тоже самое в procedure Syns.
На Unit3 в запросе подчеркнуто красным + token); в самом конце запроса. Если добавляю глобальную переменную token то подчеркивание пропадает, но при компиляции появляется новая ошибка в item:=SO(response);

Вот ссылка на исходник

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.


Unit2
Код:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, sSkinManager, Vcl.StdCtrls, sButton,
  sEdit, sGroupBox, sMemo, sLabel, httpsend, lib, syncobjs;

type
  TForm2 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton2: TsButton;
    sButton3: TsButton;
    sGroupBox4: TsGroupBox;
    sGroupBox5: TsGroupBox;
    sButton4: TsButton;
    sButton5: TsButton;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sLabel3: TsLabel;
    sLabel4: TsLabel;
    sLabel5: TsLabel;
    sLabel6: TsLabel;
    sLabel7: TsLabel;
    sLabel8: TsLabel;
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sButton4Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Vkramp = class(TThread)
  private
    screen_name:string;
    Proxys, CurAcc:integer;
    Rez:integer;
  protected
    procedure Execute; override;
    public
    procedure Syns;
  End;


var
  Form2: TForm2;
  HTTP:thttpsend;
  response, token:string;
  STRTime:string;
  Work:boolean;
  CS:TCriticalSection;
  Acc, Thread:integer;
implementation

{$R *.dfm}

uses Unit3, Unit4;

procedure Vkramp.Execute;
var
i:integer;
tmp:tstringlist;
gid:string;
begin
while Work do
begin
  Cs.Enter;
  Inc(Acc);
  if Acc<gids.Count then CurAcc:=Acc else Work:=False;
  Cs.Leave;
  if Work then begin
    tmp:=tstringlist.Create;
    HTTP:=tstringlist.Create;
    gid:= gids[CurAcc];
    if HTTP.HTTPMethod('GET', 'https://api.vk.com/method/wall.post?owner_id=-'+gid+'&message=' +Form4.sMemo1.Text+ '&access_token=' + token) then
     begin
       tmp.LoadFromStream(HTTP.Document);
       screen_name:= 'https://vk.com/club'+gid;
       if Pos('post_id', tmp.Text)<>0 then
       begin
         Rez:=1;
         end
         else if Pos('captcha', tmp.Text)<>0 then Rez:=2
           else Rez:=0;
         end
       else Rez:=2;

  end;
  FreeAndNil(HTTP);
  if (rez=1) then Sleep(5000);
  Synchronize(Sync);
end;
Dec(Thread);
if Thread = 0 then
begin
  Form2.sEdit1.Enabled:=true;
  Form2.sEdit2.Enabled:=true;
  Form2.sButton1.Enabled:=true;
  Form2.sButton2.Enabled:=true;
  Form2.sButton3.Enabled:=true;
end;
end;

procedure Vkramp.Sync;
begin
  case rez of
  1:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Публикация [' + screen_name + ']');
  Form2.sLabel7.Caption:=inttostr(string(Form2.sLabel7.Caption)+1);
  End;
  2:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Капча [' + screen_name + ']');
  Form2.sLabel5.Caption:=inttostr(string(Form2.sLabel5.Caption)+1);
  End;
  0:Begin
  Form2.sLabel6.Caption:=inttostr(string(Form2.sLabel6.Caption)+1);
  End;
  end;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CS.Free;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  CS:=TCriticalSection.Create;
end;

procedure TForm2.sButton1Click(Sender: TObject);
var
temp, login, pass:string;
begin
STRtime:=TimetoStr(Time);
login:=sEdit1.text;
pass:=sEdit2.text;
HTTP:=thttpsend.Create;
response:=send('GET', 'https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username='+login+'&password='+pass+'&captcha_key=&captcha_sid=');
  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;
    sMemo1.Lines.Add('[' + STRtime + ']Авторизация успешна');
    sGroupBox3.Enabled:=true;
    sGroupBox4.Enabled:=true;
    sButton4.Enabled:=true;
  end
  else sMemo1.Lines.Add('[' + STRtime + '] Ошибка авторизации' + response);
end;

procedure TForm2.sButton2Click(Sender: TObject);
begin
Form3.ShowModal();
end;

procedure TForm2.sButton3Click(Sender: TObject);
begin
Form4.ShowModal();
end;

procedure TForm2.sButton4Click(Sender: TObject);
var
i:integer;
begin
  STRtime:=TimetoStr(Time);
  for i := 1 to Length(STRTime) do
  sLabel5.Caption:='0';
  sLabel6.Caption:='0';
  sLabel7.Caption:='0';
  sEdit1.Enabled:=false;
  sEdit2.Enabled:=false;
  sButton1.Enabled:=false;
  sButton2.Enabled:=false;
  sButton3.Enabled:=false;
  sButton5.Enabled:=true;
  Work:=true;
  for i := 1 to 1 do
   Vkramp.Create(false);

end;

procedure TForm2.sButton5Click(Sender: TObject);
begin
Work:=false;
sButton5.Enabled:=false;
end;

end.
Unit3
Код:
unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, sRadioButton, sGroupBox,
  sButton, sMemo, sEdit, sLabel, sSpinEdit, superobject, httpsend, lib;

type
  TForm3 = class(TForm)
    sGroupBox1: TsGroupBox;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sRadioButton3: TsRadioButton;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton1: TsButton;
    sSpinEdit1: TsSpinEdit;
    sLabel1: TsLabel;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  gids:tstringlist;
  STRTime, response:string;

implementation

{$R *.dfm}
procedure TForm3.sButton1Click(Sender: TObject);
var
count:integer;
item, item2:TSuperObject;
begin
  gids:=tstringlist.Create;
  sMemo1.Lines.Clear;
  STRTime:=TimetoStr(Time);
  response:=send('GET', 'https://api.vk.com/method/groups.search?q='+sEdit1.text+'&type=group&count='+sSpinEdit1.text+'&access_token=' + token);
  if Pos ('response', response)<>0 then
  begin
    item:=SO(response);
    item:=item.O['response'];
    for item2 in item do
    begin
      if (item2.S['is_closed'] = 0) then
      begin
        sMemo1.Lines.Add('https//vk.com/' + item2.S['screen_name']);
        gids.Add(item2.S['gid']);
        sGroupBox2.Caption:= 'Лог [ '+inttostr(gids.Count)+']';

      end;

    end;

  end
  else sMemo1.Lines.Add('[' + STRTime + '] Ошибка');

end;

end.

 
Последнее редактирование:
Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Не компилируется, на двух Unit ошибки
Unit2
Код:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, sSkinManager, Vcl.StdCtrls, sButton,
  sEdit, sGroupBox, sMemo, sLabel, httpsend, lib, syncobjs;

type
  TForm2 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton2: TsButton;
    sButton3: TsButton;
    sGroupBox4: TsGroupBox;
    sGroupBox5: TsGroupBox;
    sButton4: TsButton;
    sButton5: TsButton;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sLabel3: TsLabel;
    sLabel4: TsLabel;
    sLabel5: TsLabel;
    sLabel6: TsLabel;
    sLabel7: TsLabel;
    sLabel8: TsLabel;
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sButton4Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Vkramp = class(TThread)
  private
    screen_name:string;
    Proxys, CurAcc:integer;
    Rez:integer;
  protected
    procedure Execute; override;
    public
    procedure Syns;
  End;


var
  Form2: TForm2;
  HTTP:thttpsend;
  response, token:string;
  STRTime:string;
  Work:boolean;
  CS:TCriticalSection;
  Acc, Thread:integer;
implementation

{$R *.dfm}

uses Unit3, Unit4;

procedure Vkramp.Execute;
var
i:integer;
tmp:tstringlist;
gid:string;
begin
while Work do
begin
  Cs.Enter;
  Inc(Acc);
  if Acc<gids.Count then CurAcc:=Acc else Work:=False;
  Cs.Leave;
  if Work then begin
    tmp:=tstringlist.Create;
    HTTP:=tstringlist.Create;
    gid:= gids[CurAcc];
    if HTTP.HTTPMethod('GET', 'https://api.vk.com/method/wall.post?owner_id=-'+gid+'&message=' +Form4.sMemo1.Text+ '&access_token=' + token) then
     begin
       tmp.LoadFromStream(HTTP.Document);
       screen_name:= 'https://vk.com/club'+gid;
       if Pos('post_id', tmp.Text)<>0 then
       begin
         Rez:=1;
         end
         else if Pos('captcha', tmp.Text)<>0 then Rez:=2
           else Rez:=0;
         end
       else Rez:=2;

  end;
  FreeAndNil(HTTP);
  if (rez=1) then Sleep(5000);
  Synchronize(Sync);
end;
Dec(Thread);
if Thread = 0 then
begin
  Form2.sEdit1.Enabled:=true;
  Form2.sEdit2.Enabled:=true;
  Form2.sButton1.Enabled:=true;
  Form2.sButton2.Enabled:=true;
  Form2.sButton3.Enabled:=true;
end;
end;

procedure Vkramp.Sync;
begin
  case rez of
  1:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Публикация [' + screen_name + ']');
  Form2.sLabel7.Caption:=inttostr(string(Form2.sLabel7.Caption)+1);
  End;
  2:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Капча [' + screen_name + ']');
  Form2.sLabel5.Caption:=inttostr(string(Form2.sLabel5.Caption)+1);
  End;
  0:Begin
  Form2.sLabel6.Caption:=inttostr(string(Form2.sLabel6.Caption)+1);
  End;
  end;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CS.Free;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  CS:=TCriticalSection.Create;
end;

procedure TForm2.sButton1Click(Sender: TObject);
var
temp, login, pass:string;
begin
STRtime:=TimetoStr(Time);
login:=sEdit1.text;
pass:=sEdit2.text;
HTTP:=thttpsend.Create;
response:=send('GET', 'https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username='+login+'&password='+pass+'&captcha_key=&captcha_sid=');
  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;
    sMemo1.Lines.Add('[' + STRtime + ']Авторизация успешна');
    sGroupBox3.Enabled:=true;
    sGroupBox4.Enabled:=true;
    sButton4.Enabled:=true;
  end
  else sMemo1.Lines.Add('[' + STRtime + '] Ошибка авторизации' + response);
end;

procedure TForm2.sButton2Click(Sender: TObject);
begin
Form3.ShowModal();
end;

procedure TForm2.sButton3Click(Sender: TObject);
begin
Form4.ShowModal();
end;

procedure TForm2.sButton4Click(Sender: TObject);
var
i:integer;
begin
  STRtime:=TimetoStr(Time);
  for i := 1 to Length(STRTime) do
  sLabel5.Caption:='0';
  sLabel6.Caption:='0';
  sLabel7.Caption:='0';
  sEdit1.Enabled:=false;
  sEdit2.Enabled:=false;
  sButton1.Enabled:=false;
  sButton2.Enabled:=false;
  sButton3.Enabled:=false;
  sButton5.Enabled:=true;
  Work:=true;
  for i := 1 to 1 do
   Vkramp.Create(false);

end;

procedure TForm2.sButton5Click(Sender: TObject);
begin
Work:=false;
sButton5.Enabled:=false;
end;

end.
Unit3
Код:
unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, sRadioButton, sGroupBox,
  sButton, sMemo, sEdit, sLabel, sSpinEdit, superobject, httpsend, lib;

type
  TForm3 = class(TForm)
    sGroupBox1: TsGroupBox;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sRadioButton3: TsRadioButton;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton1: TsButton;
    sSpinEdit1: TsSpinEdit;
    sLabel1: TsLabel;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  gids:tstringlist;
  STRTime, response:string;

implementation

{$R *.dfm}
procedure TForm3.sButton1Click(Sender: TObject);
var
count:integer;
item, item2:TSuperObject;
begin
  gids:=tstringlist.Create;
  sMemo1.Lines.Clear;
  STRTime:=TimetoStr(Time);
  response:=send('GET', 'https://api.vk.com/method/groups.search?q='+sEdit1.text+'&type=group&count='+sSpinEdit1.text+'&access_token=' + token);
  if Pos ('response', response)<>0 then
  begin
    item:=SO(response);
    item:=item.O['response'];
    for item2 in item do
    begin
      if (item2.S['is_closed'] = 0) then
      begin
        sMemo1.Lines.Add('https//vk.com/' + item2.S['screen_name']);
        gids.Add(item2.S['gid']);
        sGroupBox2.Caption:= 'Лог [ '+inttostr(gids.Count)+']';

      end;

    end;

  end
  else sMemo1.Lines.Add('[' + STRTime + '] Ошибка');

end;

end.
Товарищь описание проблемы не вижу,на данный момент экстрасенсы ушли на новогодние праздники,это рас,следующее исходники я вижу вы скопировали от моего товарища Tugarin,третье ,первым делом я вам говорил как начинаете программировать прочитайте поучитесь,а вы уже лезите на superobject,я больше чем уверен вы даже не скачали это библиотеку,если я не прав скиньте мне ее сюда и я проверю ее работу,ну и последнее ,прошу вас всегда описуйте в раскрытой форме вашу проблему,может так мы вам поможем еще быстрее.
 
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
Товарищь описание проблемы не вижу,на данный момент экстрасенсы ушли на новогодние праздники,это рас,следующее исходники я вижу вы скопировали от моего товарища Tugarin,третье ,первым делом я вам говорил как начинаете программировать прочитайте поучитесь,а вы уже лезите на superobject,я больше чем уверен вы даже не скачали это библиотеку,если я не прав скиньте мне ее сюда и я проверю ее работу,ну и последнее ,прошу вас всегда описуйте в раскрытой форме вашу проблему,может так мы вам поможем еще быстрее.
Я исправил описание, и добавил исходник.
 
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
Исправил код, ошибок не вижу. Но при поиске групп ошибка, решил добавить response
sMemo1.Lines.Add('[' + STRTime + '] Ошибка' + response);
При поиске пишет Ошибка 400

Unit2
Главная форма
Код:
unit Unit2;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, sSkinManager, Vcl.StdCtrls, sButton,
  sEdit, sGroupBox, sMemo, sLabel, httpsend, lib, syncobjs;

type
  TForm2 = class(TForm)
    sSkinManager1: TsSkinManager;
    sGroupBox1: TsGroupBox;
    sEdit1: TsEdit;
    sEdit2: TsEdit;
    sButton1: TsButton;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton2: TsButton;
    sButton3: TsButton;
    sGroupBox4: TsGroupBox;
    sGroupBox5: TsGroupBox;
    sButton4: TsButton;
    sButton5: TsButton;
    sLabel1: TsLabel;
    sLabel2: TsLabel;
    sLabel3: TsLabel;
    sLabel4: TsLabel;
    sLabel5: TsLabel;
    sLabel6: TsLabel;
    sLabel7: TsLabel;
    sLabel8: TsLabel;
    procedure sButton2Click(Sender: TObject);
    procedure sButton3Click(Sender: TObject);
    procedure sButton1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure sButton4Click(Sender: TObject);
    procedure sButton5Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  Vkramp = class(TThread)
  private
    screen_name:string;
    Proxys, CurAcc:integer;
    Rez:integer;
  protected
    procedure Execute; override;
    public
    procedure Sync;
  End;


var
  Form2: TForm2;
  HTTP:thttpsend;
  response, token:string;
  STRTime:string;
  Work:boolean;
  CS:TCriticalSection;
  Acc, Thread:integer;
implementation

{$R *.dfm}

uses Unit3, Unit4;

procedure Vkramp.Execute;
var
i:integer;
tmp:tstringlist;
gid:string;
begin
while Work do
begin
  Cs.Enter;
  Inc(Acc);
  if Acc<gids.Count then CurAcc:=Acc else Work:=False;
  Cs.Leave;
  if Work then begin
    tmp:=tstringlist.Create;
    HTTP:=thttpsend.Create;
    gid:=gids[CurAcc];
    if HTTP.HTTPMethod('GET', 'https://api.vk.com/method/wall.post?owner_id=-'+gid+'&message=' +Form4.sMemo1.Lines.Text+ '&access_token=' + token) then
     begin
       tmp.LoadFromStream(HTTP.Document);
       screen_name:= 'http://vk.com/club'+gid;
       if Pos('post_id', tmp.Text)<>0 then
       begin
         Rez:=1;
         end
         else if Pos('captcha', tmp.Text)<>0 then Rez:=2
           else Rez:=0;
         end
       else Rez:=0;

  end;
  FreeAndNil(HTTP);
  if (rez=1) then Sleep(5000);
  Synchronize(Sync);
end;
Dec(Thread);
if Thread = 0 then
begin
  Form2.sEdit1.Enabled:=true;
  Form2.sEdit2.Enabled:=true;
  Form2.sButton1.Enabled:=true;
  Form2.sButton2.Enabled:=true;
  Form2.sButton3.Enabled:=true;
end;
end;

procedure Vkramp.Sync;
begin
  case rez of
  1:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Публикация [ ' + screen_name + ' ]');
  Form2.sLabel7.Caption:=inttostr(strtoint(Form2.sLabel7.Caption)+1);
  End;
  2:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Капча [' + screen_name + ']');
  Form2.sLabel5.Caption:=inttostr(strtoint(Form2.sLabel5.Caption)+1);
  End;
  0:Begin
  Form2.sLabel6.Caption:=inttostr(strtoint(Form2.sLabel6.Caption)+1);
  End;
  end;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CS.Free;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  CS:=TCriticalSection.Create;
end;

procedure TForm2.sButton1Click(Sender: TObject);
var
temp, login, pass:string;
begin
STRtime:=TimetoStr(Time);
login:=sEdit1.text;
pass:=sEdit2.text;
HTTP:=thttpsend.Create;
response:=send('GET', 'https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username='+login+'&password='+pass+'&captcha_key=&captcha_sid=' + token);
  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;
    sMemo1.Lines.Add('[' + STRtime + ']Авторизация успешна');
    sGroupBox3.Enabled:=true;
    sGroupBox4.Enabled:=true;
    sButton4.Enabled:=true;
  end
  else sMemo1.Lines.Add('[' + STRtime + '] Ошибка авторизации' + response);
end;

procedure TForm2.sButton2Click(Sender: TObject);
begin
Form3.ShowModal();
end;

procedure TForm2.sButton3Click(Sender: TObject);
begin
Form4.ShowModal();
end;

procedure TForm2.sButton4Click(Sender: TObject);
var
i:integer;
begin
  StrTime:=TimetoStr(Time);
  for i := 1 to Length(STRTime) do
  sLabel5.Caption:='0';
  sLabel6.Caption:='0';
  sLabel7.Caption:='0';
  sEdit1.Enabled:=false;
  sEdit2.Enabled:=false;
  sButton1.Enabled:=false;
  sButton2.Enabled:=false;
  sButton3.Enabled:=false;
  sButton5.Enabled:=true;
  Work:=true;
  for i := 1 to 1 do
   Vkramp.Create(false);

end;

procedure TForm2.sButton5Click(Sender: TObject);
begin
Work:=False;
sEdit1.Enabled:=true;
  sEdit2.Enabled:=true;
  sButton1.Enabled:=true;
  sButton2.Enabled:=true;
  sButton3.Enabled:=true;
sButton5.Enabled:=False;
end;

end.

Unit3 Форма поиска
Код:
unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, sRadioButton, sGroupBox,
  sButton, sMemo, sEdit, sLabel, sSpinEdit, superobject, httpsend, lib;

type
  TForm3 = class(TForm)
    sGroupBox1: TsGroupBox;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sRadioButton3: TsRadioButton;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton1: TsButton;
    sSpinEdit1: TsSpinEdit;
    sLabel1: TsLabel;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  gids:tstringlist;
  STRTime, response, token:string;

implementation

{$R *.dfm}
uses Unit2;
procedure TForm3.sButton1Click(Sender: TObject);
var
coun:integer;
item, item2: ISuperObject;
begin
  gids:=tstringlist.Create;
  sMemo1.Lines.Clear;
  STRTime:=TimetoStr(Time);
  response:=send('GET', 'https://api.vk.com/method/groups.search?q='+sEdit1.Text+'&type=group&count='+sSpinEdit1.text+'&access_token=' + token);
  if Pos ('response', response)<>0 then
  begin
    item:=SO(response);
    item:=item.O['response'];
    for item2 in item do
    begin
      if (item2.I['is_closed'] = 0) then
      begin
        sMemo1.Lines.Add('http//vk.com/' + item2.S['screen_name']);
        gids.Add(item2.S['gid']);
        sGroupBox2.Caption:= 'Лог [ '+inttostr(gids.Count)+']';
      end;
    end;
  end
  else sMemo1.Lines.Add('[' + STRTime + '] Ошибка' + response);
end;

end.

Prt Sc

 
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
Все исправил, программа работает. Единственное что не могу понять, так это то почему сообщения на русском не отправляются. Вместо русского текста на стене вот такое получается (?0?3?0??) и нельзя отступать только так (Dobavlyu_vseh). Тоже самое и с поиском групп, можно искать только по Английским названиям, и тоже без пробела.
 
Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,227
Баллы
155
Все исправил, программа работает. Единственное что не могу понять, так это то почему сообщения на русском не отправляются. Вместо русского текста на стене вот такое получается (?0?3?0??) и нельзя отступать только так (Dobavlyu_vseh). Тоже самое и с поиском групп, можно искать только по Английским названиям, и тоже без пробела.
кодировка не та
 
Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,227
Баллы
155
у меня выдает ошибку 400 если в поиск задавать 2 слова если одно то вот
[16:07:00] Ошибка{"error":{"error_code":5,"error_msg":"User authorization failed: no access_token passed.","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"groups.search"},{"key":"q","value":"Musik"},{"key":"type","value":"group"},{"key":"count","value":"500"}]}}
 
Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Все исправил, программа работает. Единственное что не могу понять, так это то почему сообщения на русском не отправляются. Вместо русского текста на стене вот такое получается (?0?3?0??) и нельзя отступать только так (Dobavlyu_vseh). Тоже самое и с поиском групп, можно искать только по Английским названиям, и тоже без пробела.
Отступ нужно добавлять кодом,так как сообщение отпровляеться в html или php формате ,нужно вставлять % почитай в гугле .
 
Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Все исправил, программа работает. Единственное что не могу понять, так это то почему сообщения на русском не отправляются. Вместо русского текста на стене вот такое получается (?0?3?0??) и нельзя отступать только так (Dobavlyu_vseh). Тоже самое и с поиском групп, можно искать только по Английским названиям, и тоже без пробела.
kak ispravel,nam je interesno
 
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
Мои ошибки по порядку:

1. Главная форма Form2. Я не перевел inttostr в strtoint.
Код:
procedure Vkramp.Sync;
begin
  case rez of
  1:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Публикация [ ' + screen_name + ' ]');
  Form2.sLabel7.Caption:=inttostr(strtoint(Form2.sLabel7.Caption)+1); \\ Вместо этого я написал Form2.sLabel7.Caption:=inttostr(string(Form2.sLabel7.Caption)+1);
  End;
  2:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Капча [' + screen_name + ']');
  Form2.sLabel5.Caption:=inttostr(strtoint(Form2.sLabel5.Caption)+1);
  End;
  0:Begin
  Form2.sLabel6.Caption:=inttostr(strtoint(Form2.sLabel6.Caption)+1);
  End;
  end;
end;
2. Форма поиска Form3. Я присвоил item, item2: TSuperObject. Не большая ошибка, которую я не замечал. Так будет правильно item, item2: ISuperObject

Код:
unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, sRadioButton, sGroupBox,
  sButton, sMemo, sEdit, sLabel, sSpinEdit, superobject, httpsend, lib;

type
  TForm3 = class(TForm)
    sGroupBox1: TsGroupBox;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sRadioButton3: TsRadioButton;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton1: TsButton;
    sSpinEdit1: TsSpinEdit;
    sLabel1: TsLabel;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  gids:tstringlist;
  STRTime:string;

implementation

{$R *.dfm}
uses Unit2;
procedure TForm3.sButton1Click(Sender: TObject);
var
coun:integer;
item, item2: ISuperObject; // Исправил здесь
begin
  gids:=tstringlist.Create;
  sMemo1.Lines.Clear;
  STRTime:=TimetoStr(Time);
  response:=send('GET', 'https://api.vk.com/method/groups.search?q='+sEdit1.Text+'&type=group&count='+sSpinEdit1.text+'&access_token=' + token);
  if Pos ('response', response)<>0 then
  begin
    item:=SO(response);
    item:=item.O['response'];
    for item2 in item do
    
begin
      if (item2.I['is_closed'] = 0) then
      begin
        sMemo1.Lines.Add('https://vk.com/' + item2.S['screen_name']);
        gids.Add(item2.S['gid']);
        sGroupBox2.Caption:= 'Лог [ '+inttostr(gids.Count)+']';
      end;

  end
  else sMemo1.Lines.Add('[' + STRTime + '] Ошибка');
end;

end.
Программа не моя, я её изначально переписал невнимательно. Нужна только для примера, сейчас по этому примеру дописываю инвайт. Добавление людей в друзья из группы. Столкнулся с капчей, теперь вопросов станет еще больше))
 
Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Мои ошибки по порядку:

1. Главная форма Form2. Я не перевел inttostr в strtoint.
Код:
procedure Vkramp.Sync;
begin
  case rez of
  1:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Публикация [ ' + screen_name + ' ]');
  Form2.sLabel7.Caption:=inttostr(strtoint(Form2.sLabel7.Caption)+1); \\ Вместо этого я написал Form2.sLabel7.Caption:=inttostr(string(Form2.sLabel7.Caption)+1);
  End;
  2:Begin
  STRTime:=TimeToStr(Time);
  Form2.sMemo1.Lines.Add('[' + STRTIME + '] Капча [' + screen_name + ']');
  Form2.sLabel5.Caption:=inttostr(strtoint(Form2.sLabel5.Caption)+1);
  End;
  0:Begin
  Form2.sLabel6.Caption:=inttostr(strtoint(Form2.sLabel6.Caption)+1);
  End;
  end;
end;
2. Форма поиска Form3. Я присвоил item, item2: TSuperObject. Не большая ошибка, которую я не замечал. Так будет правильно item, item2: ISuperObject

Код:
unit Unit3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, sRadioButton, sGroupBox,
  sButton, sMemo, sEdit, sLabel, sSpinEdit, superobject, httpsend, lib;

type
  TForm3 = class(TForm)
    sGroupBox1: TsGroupBox;
    sRadioButton1: TsRadioButton;
    sRadioButton2: TsRadioButton;
    sRadioButton3: TsRadioButton;
    sEdit1: TsEdit;
    sGroupBox2: TsGroupBox;
    sMemo1: TsMemo;
    sGroupBox3: TsGroupBox;
    sButton1: TsButton;
    sSpinEdit1: TsSpinEdit;
    sLabel1: TsLabel;
    procedure sButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;
  gids:tstringlist;
  STRTime:string;

implementation

{$R *.dfm}
uses Unit2;
procedure TForm3.sButton1Click(Sender: TObject);
var
coun:integer;
item, item2: ISuperObject; // Исправил здесь
begin
  gids:=tstringlist.Create;
  sMemo1.Lines.Clear;
  STRTime:=TimetoStr(Time);
  response:=send('GET', 'https://api.vk.com/method/groups.search?q='+sEdit1.Text+'&type=group&count='+sSpinEdit1.text+'&access_token=' + token);
  if Pos ('response', response)<>0 then
  begin
    item:=SO(response);
    item:=item.O['response'];
    for item2 in item do
   
begin
      if (item2.I['is_closed'] = 0) then
      begin
        sMemo1.Lines.Add('https://vk.com/' + item2.S['screen_name']);
        gids.Add(item2.S['gid']);
        sGroupBox2.Caption:= 'Лог [ '+inttostr(gids.Count)+']';
      end;

  end
  else sMemo1.Lines.Add('[' + STRTime + '] Ошибка');
end;

end.
Программа не моя, я её изначально переписал невнимательно. Нужна только для примера, сейчас по этому примеру дописываю инвайт. Добавление людей в друзья из группы. Столкнулся с капчей, теперь вопросов станет еще больше))
ахахахах капча)))
Ну качай библиотеку руккапча и все пойдет путем
 
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
ахахахах капча)))
Ну качай библиотеку руккапча и все пойдет путем
А если вводить капчу вручную, на форму (диалог) нужно добавлять компонент images?
 
Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
А если вводить капчу вручную, на форму (диалог) нужно добавлять компонент images?
Ну можешь создать и динамически,а так вообще то нужно добовлять компонент ,если не знаешь как автоматически вводить .
 
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
Ну можешь создать и динамически,а так вообще то нужно добовлять компонент ,если не знаешь как автоматически вводить .
Я не решил вопрос с авторизацией вк через комп. А администратор вконтакте мне сказал свободен)) Такую возможность сейчас никому не дают. Кроме случаев если я создаю официальное swf приложение.
 
Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Скачай analyzer и по пакетам пиши авторизация ,то есть каждое действие ловишь и делаешь запросы.
 
Андрей Оффлайн

Андрей

Принятый Кодер
Регистрация
17 Дек 2015
Сообщения
62
Баллы
60
Скачай analyzer и по пакетам пиши авторизация ,то есть каждое действие ловишь и делаешь запросы.
Да он у меня есть, но почему то не работает. Может в браузер нужно расширение какое то добавить?
Иногда ловит запросы через FireFox но там такая каша. Выполнил одно действие а он как будто дублирует повторы, или в ленте ловит новости
 
Статус
Закрыто для дальнейших ответов.
Вверх Снизу