Delphi Studio » Примеры на Delphi » Примеры на Delphi Сеть Интернет » Авторизация на facebook.com (Synapse) Пример на Delphi »

 
 
 
Приветствуем нового пользователя: chexiahig
 
Реклама на сайте

Авторизация на facebook.com (Synapse) Пример на Delphi

Автор: FeniXElite | 4-04-2011, 17:14 | Просмотров: 301 | Категория: Примеры на Delphi » Примеры на Delphi Сеть Интернет

0
Авторизация на facebook.com (Synapse) Пример на Delphi


Пример авторизации в Delphi на сайте facebook.com(мобильная версия!)

В Uses добавить:
httpsend, ssl_openssl, RegExpr


function AuthorizeMobile: Byte;
var
    Responsedata: TStringStream;
    Postdata:     TStringStream;
    Response: string;
    HTTP: THTTPSend;
    RegExp: TRegExpr;
    //
    form_id : string;
    user_id : string;
begin
    Result := 0;
    ResponseData  := TStringStream.Create;
    PostData      := TStringStream.Create
    HTTP := THTTPSend.Create;
    HTTP.AddPortNumberToHost := False;
    RegExp := TRegExpr.Create;  

    HTTp.Document.Clear;
    HTTP.Headers.Clear;
    HTTP.HTTPMethod('GET', 'http://m.facebook.com/');
    HTTP.Document.SaveToStream(ResponseData);

    RegExp.Expression := '"post_form_id"\svalue="([^\s]*)"';

    if not(RegExp.Exec(ResponseData.DataString)) then begin
      Result := 0;
      FreeAndNil(PostData);
      FreeAndNil(ResponseData);
      Exit;
    end
    else
      form_id := RegExp.Match[1];

    PostData.WriteString('lsd=' + '' +'&'+
                         'post_form_id=' + form_id +'&'+
                         'email=' + ВАШ ЛОГИН    +'&'+
                         'pass=' + ВАШ ПАРОЛЬ        +'&'+
                         'login=Log In');
    HTTp.Document.Clear;
    HTTP.Headers.Clear;
    HTTP.MimeType:='application/x-www-form-urlencoded';
    HTTp.Document.LoadFromStream(PostData);

    HTTP.HTTPMethod('POST', 'https://www.facebook.com/login.php?m=m');

    Location := GetLocation(HTTP.Headers.Text);
    HTTP.Document.Clear;
    HTTP.Headers.Clear;

    if Location <> '' then begin
      HTTP.HTTPMethod('Get', Location);
      HTTP.Document.SaveToStream(ResponseData);
      Response := string(UTF8Decode(ResponseData.DataString));
      if (Pos('Home', Response) <> 0)or
         (Pos('Главная', Response) <> 0)or
         (Pos('Головна', Response) <> 0)
      then
        Result := 1;
    end;

    HTTP.Document.Clear;
    HTTP.Headers.Clear;
    FreeAndNil(PostData);
    FreeAndNil(ResponseData);
end;


Функция для обработки редиректов:


function GetLocation(Header : string) : string;
begin
  RegExp.Expression := 'Location:\s([^\s]*)';
  if RegExp.Exec(Header) then
    Result := RegExp.Match[1]
  else
    Result := '';
end;


Есть будут какие-то вопросы, то с радостью на них отвечу. bully
Прямая ссылка на страницу: HTML ссылка: Ссылка для форумов:
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
 
-й день
Онлайн:
rss