unit Bot; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.OleCtrls, SHDocVw, IdHTTP, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL; type TForm1 = class(TForm) GroupBox1: TGroupBox; login: TEdit; pass: TEdit; Button1: TButton; Button2: TButton; IdHTTP1: TIdHTTP; Memo1: TMemo; IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL; Memo2: TMemo; procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; auth_t: string; // хранится значение authenticity_token implementation {$R *.dfm} procedure TForm1.Button2Click(Sender: TObject); var data: TStringList; get: String; begin get := IdHTTP1.get('https://twitter.com/'); auth_t := Copy(get, Pos('type="hidden" value="', get) + 21, 40); // Вытаскиваем значение authenticity_token data := TStringList.Create; data.Add('authenticity_token=' + auth_t); data.Add('session[username_or_email]=' + login.Text); data.Add('session[password]=' + pass.Text); data.Add('remember_me=' + '1'); data.Add('return_to_ssl]=' + 'true'); data.Add('scribe_log=' + ''); data.Add('redirect_after_login=' + '/'); IdHTTP1.Post('https://twitter.com/', data); // Отправляем все параметры get := IdHTTP1.get('https://twitter.com/'); memo1.Lines.Add(get); if Pos('logout', get) <> 0 then begin ShowMessage('Авторизовались удачно!'); Button1.Enabled := False; end else ShowMessage('Авторизовались не удачно!'); // Проверяем авторизовались или нет end; end. |