Delphi – Indy (видеоурок). Авторизация на одноклассниках
Метки: delphi, indy, авторизация, видеоурок, одноклассники Рубрика: Видеоуроки Delphi
Первый видеоурок по Delphi посвящен авторизации на сайте средствами Indy. В качестве примера я взял сайт “Одноклассники.ру“. Для авторизации на нем, как это бывает довольно-таки часто, нужно сделать два запроса: первый на главную страницу, спарсить адрес для авторизации и уже по нему сделать второй запрос с посылкой всех параметров (логин и пароль).
Смотрим и скачиваем:
http://avtuh.ru/wp-content/uploads/autorization-odnoklassniki.flvТакже Mak7v любезно переписал код авторизации для Одноклассники на язык С++ ![]()
Скачать исходник на С++
А вот примеры авторизации на сайте Вконтакте
Кстати, статьи и обзоры, непосредственно касающиеся delphi, есть на delphi блоге Димаса
ICQ # 14-14-351
Skype zdezbilya
Интерны 104 смотреть онлайн бесплатно
интерны 104 смотреть онлайн бесплатно
inte.tv
Аутсорсинг бухгалтерии обслуживание в Киеве
аутсорсинг бухгалтерии обслуживание в Киеве
auditoru.com.ua

Это какая версия delphi?
По поводу функции Pars, видел её на граббе, если использовать PosEx, то количество copy уменьшится до одного раза
Zdez Bil Ya ответил:
января 21, 2010 в 13:33
Delphi 2010 (подойдет любая)))
Но я не стал, ибо это надо еще одну библиотеку подключать))
Да, можно использовать PosEx
Очень круто) спасиб большое, на днях попробую повторить, раньше пробовал хелловорд на дельфи писать, вроде что-то получалось) объясняешь хорошо, микрофон тоже норм, ты ведь тут не реп поешь) еще раз большое спасибо за урок!
такс 2 вопроса очень нубских) я решил попробовать сделать тоже самое но для вконтакте) естественно ничего не получилось) по первых, дельфи не дает запустить мой чудо код выделяя красным “StrPage:=idhttp1.Get(‘http://vkontakte.ru/login.php‘);”
Ну и вопрос : если у меня в http аналайзере во вкладке “Post data” в графе “Parameter name” стоит параметр типа “expire”, а в “Value” пусто. Я написал просто Data.Add(‘expire=’); но по ходу это не правильно)
Zdez Bil Ya ответил:
января 22, 2010 в 04:59
1) я не взял ВКонтакте в качестве примера, потому что там не столь простая авторизация)) К тому же часто меняется
2) в строке “StrPage:=idhttp1.Get(’http://vkontakte.ru/login.php’);” как таковой ошибки нет. Надо смотреть, что пишет компилятор.
3) чаще всего, если параметр пустой, то его писать не обязательно (хотя попадался мне случай и обязательного пустого параметра).
Про авторизацию ВКонтакте можно почитать здесь: http://avtuh.ru/2010/05/12/delphi-indy-avtorizaciya-vkontakte.html
HenzO, могу предположить, что у тебя переменная неправильно объявлена, или не объявлена вовсе. Или же idhhtp1 не создан (idhttp1:=TIdHTTP.Create;)
в любом случае, когда дельфи что-то выделяет красным, надо прислушиваться и к тому, что он пишет про ошибку
Не легче снифером смотреть запрос, чем в исходном коде смотреть?
Zdez Bil Ya ответил:
января 22, 2010 в 22:02
Запрос я и смотрю снифером. А в исходном коде я смотрю, где располагается ссылка для авторизации
Спасибо! Замечательный урок!
подскажи пример как выпарсить не одну а н количество ссылок этой функцией, спс
Zdez Bil Ya ответил:
февраля 10, 2010 в 18:16
Точно также, как и одну) Указать, что идет до ссылки и чем заканчивается.
Если префикс у ссылок одинаковый, то нужно удалять уже пропарсенную часть процедурой Delete
Как бысть если мне нужно авторизироватся на DLE?
Zdez Bil Ya ответил:
июня 14, 2010 в 20:18
Так же, как в уроке. Берёте снифер и смотрите запросы, а потом пишете
и еще… скачал исходник запустил без изменений ошибка
в строке
Application.MainFormOnTaskbar := True;
[Error] Project1.dpr(11): Undeclared identifier: ‘MainFormOnTaskbar’
Zdez Bil Ya ответил:
июня 14, 2010 в 20:19
Закомментируйте
Незря набрел на страницу..
Хотя все это я давно знал, но вот что в этом сниффере можно один процесс выбирать пропустил как-то, хотя использую его уже год…
А так раздражает когда во время отладки всякая ненужная хрень лезет в инет
Кстати, эти ненужность параметров можно было показать наглядно, отключив javascript в браузере.
И параметры проще брать в Raw Stream одной строкой и присваивать Data.Text := …; Ну это уже дело привычки
Zdez Bil Ya ответил:
июня 23, 2010 в 22:50
Да, можно и скрипты и картинки отключать, но иногда лень это делать)
Параметры да, можно и одной строкой, то так лично мне нагляднее, когда приходится много параметров заполнять
Перепиши, плиз, пример. Авторизация сменилась, пример не рабочий
Zdez Bil Ya ответил:
июля 6, 2010 в 20:26
Исходный код открыт, видео лишь объясняет последовательность действий. Не вижу проблем самому проделать действия, и изменить код
Ссылка логина в исходнике страницы отсутствует, потому и прошу переписать исходник))
Zdez Bil Ya ответил:
июля 7, 2010 в 12:50
Ничего подобного, всё там есть
Мне интересно чё ето видео в сети везде стоит Автор: sXciNe.
Так или нет ?
Zdez Bil Ya ответил:
августа 28, 2010 в 23:24
Что так или нет?
Видео записывал я, голос мой, копирайт внизу слева тоже вроде мой
Гугл , запрос :sXciNe (с) Авторизация на одноклассниках
Zdez Bil Ya ответил:
августа 28, 2010 в 23:29
Я не понимаю, что вас смущает. Я еще раз говорю, что видео моё, копирайты в нем мои. Никакого sXciNe я знать не знаю. Задавайте ему вопросы
Спасибо большое!!! Давно искал что-то подобное
Добрый день.
отличный урок. пытаюсь авторизоваться в админку джумлы на локальной машине и ничего не получается.. =)) постоянно Invalid Token..
Zdez Bil Ya, Прошу скажите что не так
Build
[Warning] Unit1.pas(86): For loop control variable must be simple local variable
[Error] Unit1.pas(109): Undeclared identifier: ‘idhttp1′
[Error] Unit1.pas(110): Undeclared identifier: ‘Pars’
[Error] Unit1.pas(120): Missing operator or semicolon
[Fatal Error] Project1.dpr(5): Could not compile used unit ‘Unit1.pas’
Пожалуйста…
Zdez Bil Ya ответил:
мая 20, 2011 в 22:57
Вы как-то бездумно копируйте код. Ваша программа не знает, что такое “idhttp1″ и “Pars”
А можно восстановить ссылку на c++ код?:)
Zdez Bil Ya ответил:
июня 19, 2011 в 20:53
Восстановлена
Я пытался по этому примеру сделать автроризацию Вконтакте, но проблема! Пишет вот:
Application.MainFormOnTaskbar := True;
^
|
Вот гдето сдесь
Очень полезный урок. Благодарен!!!
Павел шлепните вообще эту строку)))
Application.MainFormOnTaskbar := True;
Огромное спасибо! Всё предельно понятно