Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2011, 15:44   #1
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию Авторизация ВКОНТАКТЕ

Всем доброго времени суток! Не пойму почему не получается авторизоваться делал так как во 2 теме этого раздела вот код
Код:
procedure TForm1.Image1Click(Sender: TObject);
var params,responseres:tstringlist;
begin
params:=TStringList.Create;
responseres:=TStringList.Create;
try
params.Add('email=xxxxx');
params.Add('pass=xxxxx');
 params.Add('expire=1');
memo1.Text:=utf8toansi(http1.Post('http://login.vk.com/?act=login',params));
if Pos('logout',memo1.Text)>0 then
  ShowMessage('Авторизовались!');
finally
params.free;
responseres.free;
end;
end;
маленький код приходит в ответ но что самое интересное то что я сохранил в файлик и открыл в опере, (опера была не авторизованна) она меня сразу авторизовала
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 02.02.2011, 15:59   #2
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Всё спасибо ненадо нашёл вот сайт

Цитата:
Итак, первый способ: самый очевидный – через главную страницу vkontakte.ru.

Заходим на главную страницу, включаем снифер.
Вводим верные данные, видим два запроса, а также то, что после авторизации идет перенаправление на страницу профиля.
Пишем код:
?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 var data:tstringlist;
PageProfile:string;
error:boolean;
begin
IdHTTP1.AllowCookies:=true;
IdHTTP1.HandleRedirects:=false;
data:=tstringlist.create;
data.Add('email=ваш_логин'); // логин для авторизации
data.Add('pass=пароль'); // пароль для авторизации
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;


Примерные затраты траффика для успешной авторизации: ~ (1,26+0,611+37,99) = ~ 39,861 KB
Второй способ: самый новый)) – через Open API.

Совсем недавно ВК предоставил разработчикам возможность авторизации на их сайтах, используя учетную запись ВКонтакте. И на многих сайтах уже появляются кнопочки “Войти ВКонтакте”, “Поделиться в друзьями” и т.п.
При нажатии на такую кнопку возникает форма для авторизации в ВК. Опять включаем снифер, вводим данные учетной записи и пишем код:
?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 var data:tstringlist;
PageProfile:string;
error:boolean;
begin
IdHTTP1.AllowCookies:=true;
IdHTTP1.HandleRedirects:=false;
data:=tstringlist.create;
data.Add('act=login');
data.Add('expire=1');
data.Add('vk=');
data.Add('email=ваш_логин'); // логин для авторизации
data.Add('pass=пароль'); // пароль для авторизации
data.Add('success_url=http://vkontakte.ru/share.php?act=logged');
error:=false;
try
PageProfile:=IdHTTP1.Post('http://login.vk.com/', 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=1');
data.Add('to=');
IdHTTP1.HandleRedirects:=true;
try
IdHTTP1.Post('http://vkontakte.ru/share.php?act=logged', data);
except
end;
PageProfile:=IdHTTP1.get('http://vkontakte.ru');
Memo1.Lines.Add('Авторизация удалась');
end
else
Memo1.Lines.Add('Авторизация не удалась');

Data.Free;
end;


Примерные затраты траффика для успешной авторизации: ~ (1,19+11,11+0,294+38,05) = ~ 50,644 KB
Третий способ: самый простой – просто один GET-запрос.


Откуда есть пошел такой способ не знаю, но раз он есть, грех им не воспользоваться))
Просто GET-запрос, в адрес которого вставляем логин и пароль:
?1
2
3
4
5
6
7
8
9
10
11
12
13 var PageProfile:string;
begin
IdHTTP1.AllowCookies:=true;
IdHTTP1.HandleRedirects:=true;
try
PageProfile:=IdHTTP1.Get('http://vkontakte.ru/login.php?email=ваш_логин&pass=паро ль');
except
end;
if Pos('logout', PageProfile)<>0 then
Memo1.Lines.Add('Авторизация удалась')
else
Memo1.Lines.Add('Авторизация не удалась');
end;


Примерные затраты траффика для успешной авторизации: ~ (0,628+38,02) = ~ 38,648 KB

© Zdez Bil Ya avtuh.ru
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 02.02.2011, 19:08   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

На форуме тема есть (могли бы и поискать) в которой выложен даже не 1 способ авторизации на быдлосайте...
W0LF вне форума Ответить с цитированием
Старый 02.02.2011, 19:15   #4
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

А способ &login=...&pass=... уже отменили?
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 02.02.2011, 20:54   #5
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Ой извините пожалуйста не посмотрел не один пример не работает пробовал выдает что авторизация прошла а код страницы грузит что я не логинен. Что делать?
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 03.02.2011, 09:22   #6
Mifody
Форумчанин
 
Регистрация: 12.02.2009
Сообщений: 215
По умолчанию

. Ну дык, так статейка-то старенькая. Они уже там поменяли кой чего .
1. это раз
2. это два правда для синапса, но можно перекрутить на Indy
Помог с вопросом - тыркаем в весы, Вам не сложно, а мне приятно
Mifody вне форума Ответить с цитированием
Старый 04.02.2011, 22:31   #7
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
. Ну дык, так статейка-то старенькая. Они уже там поменяли кой чего .
1. это раз
2. это два правда для синапса, но можно перекрутить на Indy
извините меня пожалуйста не получается авторизоваться я обнавил indy до 10 версии не могу скачать тока класс TregExpr незнаю скачал один файлик но он зависает в делфи. Поэтому не могли бы вы мне подбросить живой исходник или вот этот компонент.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 05.02.2011, 01:44   #8
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Буквально сегодня написал пост про авторизацию В Контакте. http://kdcodes.blogspot.com/2011/02/delphi.html

Правда для авторизации потребуется еще один модуль. Однако я писал его под Delphi XE.
Вот еще архив с исходником и скомпилированным файлом.
Вложения
Тип файла: rar vk.rar (647.2 Кб, 69 просмотров)
kangreon вне форума Ответить с цитированием
Старый 05.02.2011, 11:48   #9
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

kangreon теперь я понял что у меня проблема с делфи потому что я запустил ваш скомпилированный файл и он работает нормально и авторизуется а вот начал запускать исходник выдало ошибка № 1 тогда я решил заменить pas на dcu что лежит рядом с exe файлом тогда он мне выдал ошибку № 2. Подскажите пожалуйста это проблема в делфи или во мне? И как её решить?
Изображения
Тип файла: jpg ошибка № 1.jpg (206.4 Кб, 132 просмотров)
Тип файла: jpg ошибка № 2.jpg (349.1 Кб, 122 просмотров)
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 05.02.2011, 16:33   #10
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Возможно проблема в модуле. Вот переписал немного для разных инди.
Проверил на D7 - Indy 9.0.18 / 9.0.10
D7 - Indy 10.5.8
DXE - Indy 10.5.7

В архиве 3 версии.
Вложения
Тип файла: rar IdHTTPEx.rar (5.5 Кб, 42 просмотров)
kangreon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вконтакте авторизация KoBRaAndrey Работа с сетью в Delphi 3 27.08.2010 19:34
Авторизация ВКонтакте KWN, lnc Работа с сетью в Delphi 10 16.08.2010 18:31
Авторизация вконтакте Андрей.12 Работа с сетью в Delphi 5 05.08.2010 19:18
Авторизация вконтакте larin1974 Общие вопросы Delphi 1 24.10.2009 20:36
Авторизация на вконтакте.ру mustang007 Работа с сетью в Delphi 2 11.09.2009 08:19