Всем доброго времени суток. Вот от нечего делать, решил написать пару уроков.
В этом уроке, мы узнаем, каким образом можно получить свой ID и Auth_Key(Определенного приложения) из ВК.
Писать будем на Delphi XE2, аналогично и для других версий Delphi.
Приступим.
Добавим на форму:
1. Label из вкладки Standart - 3шт.
2. Edit из вкладки Standart - 3шт.
3. Button из вкладки Standart - 1шт.
4. idHTTP из вкладки Indy Clients - 1шт.
5. Memo из вкладки Standart - 1шт.
Так же, для более удобного интерфейса программы, можете добавить GroupBox, из вкладки Standart.
И получится у нас следующее:
[Ссылки могут видеть только зарегистрированные пользователи. ]
На большую кнопку не обращаем внимания...
Далее, два раза кликаем по Button и пишем такой код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
PageProfile:string;
St:String;
begin
idHTTP1.HandleRedirects:=true;
try
PageProfile:=idHTTP1.Get('http://vk.com/login.php?email='+Edit1.Text+'&pass='+Edit2.Text); // Авторизация
St:=IdHTTP1.Get('http://vk.com/'); // Ссылка на сайт откуда брать инфо
Delete(St,1,pos('id:',St)+length('id:')); // Откуда копировать
Delete(St,pos(',',St),length(St)); // до чего копировать
Memo1.Lines.Add('ID: ' + St); // Выводим результат в Memo.
PageProfile:=idHTTP1.Get('http://vk.com/login.php?email='+Edit1.Text+'&pass='+Edit2.Text);
St:=IdHTTP1.Get(Edit3.Text); // Ссылка на приложение
Delete(St,1,pos('"auth_key":"',St)+length('"auth_key":"'));
Delete(St,pos('","',St),length(St));
Memo1.Lines.Add('Auth: ' + St);
if Pos('logout', Pageprofile)<>0 then // Если зашли, то
ShowMessage('Авторизация прошла успешно!')
else // Если не зашли то
ShowMessage('Авторизация не удалась!');
except
on e:Exception do
end;
end;
end.
Всем спасибо. В следующем уроке, я покажу как программно узнать кол-во денег, уважение, энергию из приложения - "Тюряга".
Последний раз редактировалось Bосh; 29.05.2012 в 20:08.
удалять куски строчек потом их копировать , что мешает сразу копировать или использовать XMLDocument?
У каждого свои принципы.
Я выложил так, как сделал я. Мне удобнее с idHTTP работать.
Собственно, если бы больше нравился XMLDocument, выложил бы, как работать с ним.
Skrillex3, а фишка в том, что таким образом процесс парса будет происходить быстрее, чем через XMLDocument.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Skrillex3, а фишка в том, что таким образом процесс парса будет происходить быстрее, чем через XMLDocument.
Время выполнения запроса измеряется в секундах.
Причем тут операции, скорость которых считается в долях мс.
Очевидно, что куда легче пользоваться специальным классом для работы с xml
А автор для начала должен научиться основам программирования: сдвигать вложенные операторы. А также заводить локальные строковые константы, называть нормально переменные, пользоваться блоком try / except
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Рэйзор; 06.05.2012 в 15:35.
Время выполнения запроса измеряется в секундах.
Причем тут операции, скорость которых считается в долях мс.
Очевидно, что куда легче пользоваться специальным классом для работы с xml
А автор для начала должен научиться основам программирования: сдвигать вложенные операторы. А также заводить локальные строковые константы, называть нормально переменные, пользоваться блоком try / except
Выпендрился?
Это не столь важно в этом коде. Или же мне еще добавить подсчет в миллисекундах на выполнение того или иного действия? Ведь это так нужно.
Это простой парсер, а не взлом Пентагона.
Так. не понял почему удаляют мои посты, я всего то спросил про кукисы.
Для общения с вконтакте нужны куки. Почему их здесь нет? Наворочено {...} 100500 строк. Зачем? Открыл первый раз delphi и пошёл учителем? Для того что бы учить, нужно знать хотя бы основы!!! {...}
Убрал лишнее что бы не забанили за мат.
Так. не понял почему удаляют мои посты, я всего то спросил про кукисы.
Для общения с вконтакте нужны куки. Почему их здесь нет? Наворочено {...} 100500 строк. Зачем? Открыл первый раз delphi и пошёл учителем? Для того что бы учить, нужно знать хотя бы основы!!! {...}
Убрал лишнее что бы не забанили за мат.
А теперь скажи, зачем они тут?
Если нужно просто стянуть инфо? Ты сам подумай.
Залогинился - > Инфо в Label - > Готово.
try
form1.IdHTTP1.get('http://vk.com/login.php?email='+edit1.Text+'&pass='+edit2.Text);
except
end;
http:=IdHTTP1.response.RawHeaders.GetText;
if Pos('remixsid',http)<> 0 then begin
Delete(http,1,pos('d=',http)+1);
http:=copy(http,1,pos(';',http)-1);
end;
IdHTTP1.request.CustomHeaders.clear;
IdHTTP1.request.customheaders.add('Cookie: remixsid='+http);
http:=IdHTTP1.get(Edt1.text);
if Pos('auth_key',http)<>0 then begin
Delete(http,1,pos('auth_key":"',http)+10);
http:=copy(http,1,pos('"',http)-1);
Memo1.Lines.Add(http);
Так. не понял почему удаляют мои посты, я всего то спросил про кукисы.
Ваши посты удаляются, потому что они звучат, как наезд и могут быть расценены как нарушение п.1 Правил Форума.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).