Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
by_nikita
0 / 0 / 0
Регистрация: 29.12.2011
Сообщений: 15
1

Авторизация вк.

06.04.2012, 17:46. Просмотров 2028. Ответов 1
Метки нет (Все метки)

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
procedure TForm1.Button1Click(Sender: TObject);
var data:tstringlist;
     PageProfile:string;
     error:boolean;
begin
 IdHTTP1.AllowCookies:=true;
 IdHTTP1.HandleRedirects:=false;
 data:=tstringlist.create;
 data.Add('email='+edit1.text+'');
 data.Add('pass='+edit2.text+'');
 data.Add('expire=');
 data.Add('vk=');
 error:=false;
 try
  PageProfile:=IdHTTP1.Post('http://login.vk.com/?act=login', data);
 except
  error:=true;
 end;
 
 if not(error) then
  begin
   data.Clear;
   data.Add('s='+Copy(PageProfile, Pos('value', PageProfile)+7, 56));
   data.Add('op=slogin');
   data.Add('redirect=1');
   data.Add('expire=0');
   data.Add('to=');
   IdHTTP1.HandleRedirects:=true;
   try
    PageProfile:=IdHTTP1.Post('http://vkontakte.ru/login.php', data);
   except
   end;
   Memo1.Lines.Add('ÀâòîðèçГ*öèÿ ГіГ¤Г*Г«Г*Г±Гј');
  end
 else
  Memo1.Lines.Add('ÀâòîðèçГ*öèÿ Г*ГҐ ГіГ¤Г*Г«Г*Г±Гј');
 
 Data.Free;
end;
end.
Сделал, но ошибка. Где ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2012, 17:46
Ответы с готовыми решениями:

Авторизация
Делаю авторизацию вот таким кодом var StrPage,ssylka,a:string; log:TstringList; St:String; ...

Авторизация
Всем привет, нужна ваша помощь ) у меня на форме 2 едита, 1 кнопка, и 1 браузер. при запуски...

авторизация
Доброго времени суток. Делаю что-то похожее на авторизацию. На форме - Edit1, Edit2(поменяю на...

Авторизация
Здравствуйте, подскажите, что не так в коде? Вроде бы все правильно сделано, а авторизовываться не...

авторизация
каким способом происходит авторизация в vk.com

1
Форест
1 / 1 / 1
Регистрация: 07.04.2012
Сообщений: 3
07.04.2012, 19:15 2
by_nikita, Вот рабочий код авторизации:

Подключаем в uses cледущие модули: idantifreeze,IdHTTP,idcookiemanager;
описываю каждый модуль:
idantifreeze-нужен для того что бы программа не висла прии работе P.S его подключение не обязательно!
IdHTTP-компонент для посылки post и get запросов да и вообще для работы с сетью.
idcookiemanager-данный компонент хранит так называемые "куки".
далее дописываем после public вот function authvk(l,p:string):boolean; b и нажимаем ctrl+shift+c делфи сгенерирует
эту функцию.Далее пишем вот этот код в теле функции :
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
var
  s, c, remixchk, remixsid: string;
  i: Integer;
  cookie:Tidcookiemanager; 
  freeze:TIdAntiFreeze;
  http: TIdHTTP;
begin
/////создаем и настраиваим компоненты
cookie:=Tidcookiemanager.Create(self);
http := TIdHTTP.Create(self);
http.CookieManager:=cookie;
freeze:=TIdAntiFreeze.Create(self);
http.AllowCookies := False;
http.HandleRedirects := False;
/////создаем и настраиваим компоненты
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('remixchk='+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);//////показываем сообщение с вашим именем
    end;
//////уничтожаем компоненты
freeandnil(http);
freeandnil(cookie);
freeandnil(freeze);
end;
 
далее кидаем на форму кнопку кликаем 2 раза и пишем такой код:
if authvk('ваш логин','ваш пароль') then showmessage('Авторизовались!!') else showmessage('Не смогли вы авторизоваться!!!');
ЗАПУСКАТЬ НА ПРОВЕРКУ ЧЕРЕЗ ПРОВОДНИК ОТДЕЛЬНЫЙ ЕХЕ-ФАЙЛА, а не через IDE
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2012, 19:15

Авторизация
Вот такой ответ от сервера после отправки запроса: &lt;html&gt; &lt;head&gt; &lt;meta...

Авторизация в Vk
Как можно сделать авторизацию на сайте вконтакте с помощью программы?

Авторизация
Добрый день уважаемые кодеры! Перерыв не мало статей так и не получилось авторизоваться на сайте....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru