как авторизоваться на Мой мир, delphi

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by SultanOFF, 10 Dec 2009.

  1. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    Здравствуйте. Подскажите пожалуйста как авторизоваться на delphi в Моем мире? Надо делать get\post запросы как Я понимаю? но дело в том что из хелпов доступных в гугле Я ничего не понял :( вернее не понял как это применить к Моему миру. Помогите пожалуйста :)
     
  2. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    Смотришь, что отправляет браузер, а потом post'ом отправляешь нужные данные и авторизируешся.
     
    #2 HakaR, 10 Dec 2009
    Last edited: 10 Dec 2009
  3. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    это Я тоже в гугле вычитал, но понять не получилось. Можешь привести пример как это сделать применимо к Моему миру?
     
  4. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    Писать за тебя код я небуду:), а по сабжу посмотри здесь:
    http://parsing-and-i.blogspot.com/2009/05/idhttppost.html
     
  5. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    спасибо, именно такой хелп Я так долго и безутешно искал! Премного благодарен:)
     
  6. Kusto

    Kusto Elder - Старейшина

    Joined:
    4 Feb 2007
    Messages:
    886
    Likes Received:
    678
    Reputations:
    510
    Что тут сложного? Лови:

    http://my.mail.ru/cgi-bin/auth?&Login=ЛОГИН&Domain=ЗДЕСЬ ДОМЕН ТИПА mail.ru&Password=ПАРОЛЬ

    Просто надо было проснифать как и откуда передаються данные
     
    #6 Kusto, 10 Dec 2009
    Last edited: 10 Dec 2009
    3 people like this.
  7. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    делаю вот так
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Http  : TidHttp;
      CM    : TidCookieManager;
      Data  : TStringList;
      StrPage, UserID,  UserName  :  String;
      i : integer;
      begin
      try
        Http := TIdHTTP.Create(Self);
        Data := TStringList.Create;
        CM := TidCookieManager.Create(Http);
        Http.AllowCookies := true;
        Http.CookieManager := CM;
        Http.HandleRedirects := true;
         Http.Request.Host:='my.mail.ru';
        Http.Request.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10';
        Http.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
        Http.Request.AcceptLanguage:='ru,en-us;q=0.7,en;q=0.3';
        Http.Request.AcceptCharSet:='windows-1251,utf-8;q=0.7,*;q=0.7';
        Http.Request.Referer:='http://my.mail.ru/';
        Data.Add('domain=mail.ru');
        Data.Add('login=' + Edit1.Text);
        Data.Add('password=' + Edit2.Text);
        Data.Add('page=http://my.mail.ru/');
        StrPage := Http.Post('http://my.mail.ru/cgi-bin/auth', Data);
      finally
        Data.Free;
        CM.Free;
        Http.Free;
      end;
      if Pos('Моя страница',StrPage) <> 0 then
        ShowMessage('ura')
      else
        ShowMessage('o');
    
      Memo1.Lines.Text := StrPage;
    
    end;
    но нихрена не работает! :( Почему?
     
  8. ZdezBilYa

    ZdezBilYa Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    Всё работает. Просто неправильно обрабатывается перенаправление.
    После
    StrPage := Http.Post('http://my.mail.ru/cgi-bin/auth', Data);
    Добавь
    StrPage := Http.Get('http://my.mail.ru/');
     
  9. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    На мэйлру общая авторизация для всех поддоменов.
    Лучший вариант - через аякс:
    http://games.mail.ru/mru/auth/login?login=МЫЛО&password=ПАРОЛЬ
    Если ответ "{"ok":1}", то авторизация прошла успешна
    Скорость авторизации будет максимальной ;)
     
  10. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    ZdezBilYa да работает, спасибо ;) только смотри есть же в коде строчка
    Code:
    Memo1.Lines.Text := StrPage;
    
    весь русский текст отображен крякозябрами! Можно это как то исправить?
    а как проверить что авторизация прошла успешно кроме как загрузки и анализа html кода страницы? :)
     
  11. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
    у меня всё нормально отображается... правда я в edit загружал
     
  12. ZdezBilYa

    ZdezBilYa Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    Варианты:
    1) использовать Delphi 2010
    2) использовать TMemoryStream
    3) использовать Utf8Decode
     
  13. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    с авторизацией наконец разобрался, но с крякозябрами нет! нашел функцию:
    Code:
    function RussianToUnicode(S: String): String;
       var Wrd:Word;
         pW,pR:PWord;
        len:Integer;
       begin
        pW:=@S[1];
         len:=Length(S);
        SetLength(Result,len);
        pR:=@Result[1];
         while Len<>0 do begin
           Wrd:=pW^;
          case Wrd of
           $C0..$DF,$E0..$FF:pR^:=Wrd+50;
            else pR^:=Wrd;
          end;
          inc(pW);
         inc(pR);
        dec(Len);
       end;
      end;
    и применяю вот так
    Code:
    RussianToUnicode(StrPage );
    
    но все теже глупые крякозябры :(
    Utf8Decode тоже не сумел исправить положение, delphi 2010...менять пока нет возможности, а с TMemoryStream Я не умею. Как еще можно преоброзовать в норм кодировку?
     
  14. ZdezBilYa

    ZdezBilYa Elder - Старейшина

    Joined:
    29 Aug 2008
    Messages:
    198
    Likes Received:
    75
    Reputations:
    19
    покажите "крякозябры"

    Остается только TMemoryStream:

    Code:
    S:=TMemoryStream.Create;
    Http.Post('...', S);
    S.position:=0;
    Memo1.Lines.LoadFromStream(S);
    S.Free;
    
     
  15. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    крякозябры:
    Code:
    <meta name="description" content="Ìîé Ìèð - Âàøè îäíîêëàññíèêè, îäíîêóðñíèêè, è äðóçüÿ ðÿäîì ñ Âàìè. Óäîáíûé ïîèñê áûâøèõ âûïóñêíèêîâ, ñòàðûõ äðóçåé, íîâûõ çíàêîìûõ." />
    <meta name="keywords" content="çíàêîìñòâà, ñàéò çíàêîìñòâ, äðóçüÿ, äðóã, òîâàðèù, ïîèñê ëþäåé, íàéòè, îäíîêëàññíèê, îäíîêëàññíèöà, îäíîêëàññíèêè, îäíîêëàñíèêè, îäíîêóðñíèê, ñîêóðñíèê, âûïóñêíèê, êîëëåãè, øêîëà, èíñòèòóò, óíèâåðñèòåò, ïòó, òåõíèêóì, ó÷èëèùå, ãèìíàçèÿ" />
    
    
    
    
    <script type="text/javascript">
    
    чуть позже попробую с помощью TMemoryStream сделать, потом отпишусь)
     
  16. Meecript_

    Meecript_ Banned

    Joined:
    29 Oct 2008
    Messages:
    194
    Likes Received:
    62
    Reputations:
    32
    По заголовку. Если куки пришли, то авторизация прошла.
     
  17. SultanOFF

    SultanOFF Member

    Joined:
    4 Jun 2009
    Messages:
    155
    Likes Received:
    6
    Reputations:
    0
    оки спасибо :)
     
  18. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    ТС, я выкладывал авторизацию на сокетах, в соседней теме

    Вот оно http://forum.antichat.ru/showthread.php?t=153807
     
    #18 НTL, 12 Dec 2009
    Last edited: 12 Dec 2009
  19. .ATK

    .ATK Active Member

    Joined:
    20 Feb 2009
    Messages:
    143
    Likes Received:
    111
    Reputations:
    9
    Есть переменные там, константы... а как мне спамер написать? (с)
     
  20. DeaD_MoroZ

    DeaD_MoroZ Banned

    Joined:
    3 Nov 2009
    Messages:
    102
    Likes Received:
    7
    Reputations:
    0
    вот это вопрос :D :D :D в разделе о работе тебе его написать :D :D :D