написал код не большой но возникли проблемы
на сайте авторизация проходит, хэш вроде срезает
а вот мессагу не шлет что не так?
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, idantifreeze,IdHTTP, idcookiemanager, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
function authvk(l,p:string):boolean;
end;
{ Public declarations }
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TForm1 }
function TForm1.authvk(l, p: string): boolean;
var s, c, remixchk, remixsid: string;
i: Integer;
cookie:Tidcookiemanager;
freeze:TIdAntiFreeze;
http: TIdHTTP;
html:WideString;
hasha,wallka:string;
PostData:TStringList;
begin
begin
/////ñîçäàåì è íàñòðàèâàèì êîìïîíåíòû
cookie:=Tidcookiemanager.Create(self);
http := TIdHTTP.Create(self);
http.CookieManager:=cookie;
freeze:=TIdAntiFreeze.Create(self);
http.AllowCookies := False;
http.HandleRedirects := true;
/////ñîçäàåì è íàñòðàèâàèì êîìïîíåíòû
try
////àâòîðèçîâûâàåìñÿ íî íàñ äîëæíî ðåäåðåêòèòü òàê êàê http.HandleRedirects := False;
s:=HTTP.get('http://vk.com/login.php?email='+l+'&pass='+p);
except
if (http.ResponseCode=302) then begin ////ïðîâåðÿåì åñëè ðåäèðåêò òîãäà
////ïàðñèì êóêóñû
c := http.Response.RawHeaders.Text;
i := Pos('remixchk', c) + 9;
remixchk := Copy(c, i, length(c));
remixchk := Copy(remixchk, 1, pos(';',remixchk)-1);
i := Pos('remixsid', c) + 9;
remixsid := Copy(c, i, length(c));
remixsid := Copy(remixsid, 1, pos(';',remixsid)-1);
////ïàðñèì êóêóñû
////äîáàëÿåì èõ
http.Request.CustomHeaders.Text := 'Cookie: remixchk='+remixchk +'; remixsid='+remixsid;
http.CookieManager.AddCookie('remix chk='+remixchk+'; remixsid='+remixsid,'http://vk.com');
////äîáàëÿåì èõ
s:=http.get('http://vk.com'+http.Response.Location);////ïåðåõîäèì íà ñòðàíèöó
end;
end;
///////ïðîâåðÿêì àâòîðèçîâàëèñü ëè ìû
if (pos('Äîáðî ïîæàëîâàòü',s)>0) or (pos('Âõîä',s)>0) then result:=false else begin result:=true;
s:=copy(s,pos('<title>',s)+length(' <title>'),length(s));
s:=copy(s,1,pos('</title>',s)-1);
showmessage(s);//////ïîêàçûâàåì ñîîáùåíèå ñ âàøèì èìåíåì
wallka:=HTTP.Get('http://vk.com/club28103249');
hasha:=Copy(wallka, Pos('hash:', wallka)+7, 18);
showmessage(hasha);
PostData:=TStringList.Create; //ïîñò ñîîáùåíèÿ
PostData.Clear;
PostData.Add('act=post');
PostData.Add('al=1');
PostData.Add('facebook_export');
PostData.Add('friends_only');
PostData.Add('hash='+hasha);
PostData.Add('message=Òðåáóåòüñÿ àäìèí â ãðóïïó ïèñàòü â ëè÷êó...');
PostData.Add('note_title');
PostData.Add('official');
PostData.Add('signed');
PostData.Add('status_export');
PostData.Add('to_id=-28103249');
PostData.Add('type=all');
html:=HTTP.Post('http://vk.com/al_wall.php',PostData); //îòïðàâëÿåì
PostData.Free;
end;
//////óíè÷òîæàåì êîìïîíåíòû
freeandnil(http);
freeandnil(cookie);
freeandnil(freeze);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if authvk('ЛОГИН','ПАРОЛЬ') then
showmessage('Àâòîðèçîâàëèñü!!')
else showmessage('Íå ñìîãëè âû àâòîðèçîâàòüñÿ!!!');
end;
end.