Цитата:
Сообщение от Человек_Борща
да okerface:
|
Может подскажете что, что то не получается с проксями.(
ввожу рабочие прокси а валидные аккаунты идут в беды.((
Извините за ужасный код))
Код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent,
IdTCPConnection, IdTCPClient, IdHTTP, Vcl.ExtCtrls, Vcl.StdCtrls, IdIOHandler,
IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, Jpeg,IdSocks;
type
TForm1 = class(TForm)
Login: TGroupBox;
LoginEdit: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
GroupBox3: TGroupBox;
LogMemo: TMemo;
IdHTTP1: TIdHTTP;
IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
PassEdit: TEdit;
OpenDialog1: TOpenDialog;
Button2: TButton;
Memo1: TMemo;
procedure Proxy;
procedure GetToken;
procedure Parsing;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Memo1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
token:string;
UID:string;
client_id:string;
client_secret:string;
logine,pass,del: string;
str:TStringlist;
i:integer;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
GetToken;
Memo1.Lines.Add(logine);
Memo1.Lines.Add(pass);
end;
{procedure TForm1.Parsing;
var
str:TStringlist;
begin
str:=TStringlist.Create;
if OpenDialog1.Execute then
begin
str.LoadFromFile(OpenDialog1.FileName);
end;
if pos(';',str.Strings[0])<>0 then
begin
del:=';';
end
else
del:=':';
end;
end;
end;
}
procedure TForm1.Parsing;
begin
str:=TStringlist.Create;
if OpenDialog1.Execute then
begin
str.LoadFromFile(OpenDialog1.FileName);
end;
end;
procedure TForm1.Proxy;
var
i: integer;
proxy: string;
begin
for i:=0 to memo1.lines.count-1 do
begin
proxy:=memo1.lines.strings[0];
IdHTTP1.ProxyParams.ProxyServer:=Copy(proxy,1 ,Pos(':',proxy)-1);
IdHTTP1.ProxyParams.ProxyPort:=StrToInt(Copy(proxy,Pos(':',proxy)+1,Length(proxy)));
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Parsing;
end;
procedure TForm1.GetToken;
var
temp: string;
tempUID: string;
response:string;
Socks: TIdSocksInfo;
SSL: TIdSSLIOHandlerSocketOpenSSL;
HTTP: TIdHTTP;
begin
{ if del=';' then
begin}
logine:=copy(str.Strings[i],1 ,pos(';',str.Strings[i])-1);
pass:=copy(str.Strings[i],pos(';',str.Strings[i])+1, MaxInt);
logmemo.Lines.Add(logine);
logmemo.Lines.Add(pass);
// end ;
{ if del=':' then
begin
logine:=copy(str.Strings[i],1 ,pos(':',str.Strings[i])-1);
pass:=copy(str.Strings[i],pos(':',str.Strings[i])+1, MaxInt);
end; }
{
form1.IdHTTP1.ProxyParams.ProxyPort:=3128;
form1.IdHTTP1.ProxyParams.ProxyServer:='proxy.myprovider.net';
}
Proxy;
client_id:='2274003';
client_secret:='hHbZxrka2uZ6jB1inYsH';
try
logmemo.Lines.Add('запрос токена');
response:=idhttp1.Get('https://oauth.vk.com/token?grant_type=password&client_id='+client_id+'&scope=wall&client_secret='+client_secret+'&username='+logine+'&password='+pass);
//logmemo.Lines.Add(response);
except
logmemo.Lines.Add('ошибка соединения при получении access token');
logmemo.Lines.Add(response);
end;
if Pos('token', response)<>0 then
begin
temp:=copy(response, pos('access_token":"', response), pos('","expires_in', response)-3);
tempUID:=copy(response, pos('user_id', response), pos('}', response));
delete(temp, 1, 15);
token:=temp;
logmemo.Lines.Add('token получен');
//logmemo.Lines.Add(token);
logmemo.Lines.Add('ковыряем UID');
delete(tempUID, 1, 9);
delete(tempUID, pos('}', tempUID), 1);
UID:=tempUID;
logmemo.Lines.Add('UID получен '+UID);
logine:='';
pass:='';
i:=i+1;
end
else
begin
logmemo.Lines.Add('token не получен');
logmemo.Lines.Add(response);
logine:='';
pass:='';
i:=i+1;
end;
end;
end.