[Delphi] Авторизация ВКонтакте, ошибка... нужна помощь.

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by PiNgVin07, 13 May 2012.

  1. PiNgVin07

    PiNgVin07 New Member

    Joined:
    22 Oct 2011
    Messages:
    63
    Likes Received:
    0
    Reputations:
    0
    PHP:
    unit Unit1;

    interface

    uses
      Windows
    MessagesSysUtilsVariantsClassesGraphicsControlsForms,
      
    DialogsStdCtrlsXPManIdHTTPExIdComponentIdTCPConnection,
      
    IdTCPClientIdHTTPIdBaseComponent;

    type
      TForm1 
    = class(TForm)
        
    XPManifest1TXPManifest;
        
    Button1TButton;
        
    Edit1TEdit;
        
    Edit2TEdit;
        
    Memo1TMemo;
        
    IdHTTP1TIdHTTP;
        
    procedure Button1Click(SenderTObject);
      private
        { Private 
    declarations }
      public
        { Public 
    declarations }
      
    end;

    var
      
    Form1TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(SenderTObject);
    var
    sstring;
    httpTIdHTTPEx;

    begin
    http 
    := TIdHTTPEx.Create(Form1);
    http.Request.UserAgent :='Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01';
    try
    := http.GetEx('http://vkontakte.ru/login.php?m=1&email=' Edit1.Text +'&pass=' Edit2.Text);
    except
    if http.ResponseCode 302 then
    := http.GetEx('http://vkontakte.ru' http.Response.Location);
    end;
    if 
    Pos('logout's)<>0 then
    Memo1
    .Lines.Add('Авторизация удалась')
    else
    Memo1.Lines.Add('Авторизация не удалась');
    http.Free;
    end;


    end.

    Что тут не так? Раньше делал и всё нормально было, сейчас же пишет ошибку "Socket Error #11004".
     
  2. shadowrun

    shadowrun Banned

    Joined:
    29 Aug 2010
    Messages:
    842
    Likes Received:
    170
    Reputations:
    84
    vk.com вместо vkontakte.ru
     
    1 person likes this.
  3. PiNgVin07

    PiNgVin07 New Member

    Joined:
    22 Oct 2011
    Messages:
    63
    Likes Received:
    0
    Reputations:
    0
    Помогло, а я то и не заметил... спасибо большое, и как всегда именно вы и помагаете =)
     
  4. PiNgVin07

    PiNgVin07 New Member

    Joined:
    22 Oct 2011
    Messages:
    63
    Likes Received:
    0
    Reputations:
    0
    А теперь следующий вопрос, есть сайт с виджетом комментариев вконтакте, и мне надо следующее > Авторизация ВКонтакте > Переадресация на страницу с комментариями вконтакте > И на этой странице пишется комментарий из Memo3 в программе, как это сделать? Нужно ли парсить виджет комментариев ВК или как вообще лучше сделать? Интересует только то чтобы с Memo3 автоматически писался комментарий по ссылке из Memo2
     
  5. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Ха... шустрый малый :D
     
  6. proroot

    proroot Member

    Joined:
    31 Jan 2012
    Messages:
    46
    Likes Received:
    5
    Reputations:
    0
    C начало авторизуйся, с кукисами. потом делай делай программно редирект на http://vk.com/widget_comments.php?app=Тут ваш id виджета&url=Тут ваша ссылка на сайт
    Лови запрос на отправку сообщение чарликом. И потом дело за мылм
     
  7. PiNgVin07

    PiNgVin07 New Member

    Joined:
    22 Oct 2011
    Messages:
    63
    Likes Received:
    0
    Reputations:
    0
    PHP:
    unit Unit1;

    interface

    uses
      Windows
    MessagesSysUtilsVariantsClassesGraphicsControlsForms,
      
    DialogsStdCtrlsXPManIdHTTPExIdComponentIdTCPConnection,
      
    IdTCPClientIdHTTPIdBaseComponent;

    type
      TForm1 
    = class(TForm)
        
    XPManifest1TXPManifest;
        
    Button1TButton;
        
    Edit1TEdit;
        
    Edit2TEdit;
        
    Memo1TMemo;
        
    IdHTTP1TIdHTTP;
        
    Memo2TMemo;
        
    procedure Button1Click(SenderTObject);
      private
        { Private 
    declarations }
      public
        { Public 
    declarations }
      
    end;

    var
      
    Form1TForm1;

    implementation

    {$R *.dfm}

    procedure TForm1.Button1Click(SenderTObject);
    var
    data:tstringlist;
    sstring;
    httpTIdHTTPEx;

    begin
    http 
    := TIdHTTPEx.Create(Form1);
    http.Request.UserAgent :='Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01';
    try
    := http.GetEx('http://vk.com/login.php?m=1&email=' Edit1.Text +'&pass=' Edit2.Text);
    except
    if http.ResponseCode 302 then
    := http.GetEx('http://vk.com' http.Response.Location);
    end;
    if 
    Pos('logout's)<>0 then
    Memo1
    .Lines.Add('Авторизация удалась')
    else
    Memo1.Lines.Add('Авторизация не удалась');
    http.Free;
    begin
    IdHTTP1
    .AllowCookies := true;
    IdHTTP1.HandleRedirects := true;
    data:=tstringlist.create;
    data.Add('id=113601');
    data.Add('num=1');
    data.Add('sign=1dd88c676cfa9e3ecd9b62636dbc4abb');
    data.Add('appidnow=0');
    try
    := IdHTTP1.Post('http://vk.com/widget_comments.php?app=2024524&url=http://fishki.net/comment.php?id=113601'data);
    except

    end
    ;
    end;
    end;

    end.
    И по другому запросу пробовал и не получается, снифер показывает следующее..

    По запросу "http://vk.com/al_widget_comments.php"
    PHP:
    act=a_post
    al
    =1
    app
    =2024524
    export
    =
    hash=c75fbe3f23819e7827
    limit
    =30
    post
    =1222
    По запросу "http://fishki.net/vk_comments.php"
    PHP:
    id=113601
    num
    =1
    last
    =Прикольно
    sign
    =1dd88c676cfa9e3ecd9b62636dbc4abb
    appidnow
    =0
    Прошу помощи.