Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Делфи - Авторизация вконтакте

-

Школа Читера

- Основы основ - начинаем писать статьи для начинающих с целью создания полноценного раздела

Ответ
 
Опции темы
Старый 14.02.2011, 15:06   #1
 Старший сержант
Аватар для OneShot
 
OneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражанияOneShot блестящий пример для подражания
Регистрация: 19.08.2008
Сообщений: 205
Популярность: 2562
Золото Zhyk.Ru: 5
Сказал(а) спасибо: 36
Поблагодарили 268 раз(а) в 122 сообщениях
Отправить сообщение для OneShot с помощью Skype™
 
По умолчанию Делфи - Авторизация вконтакте

В данной статье я расскажу о способах авторизации в соц.сети ВКонтакте средствами Delphi+Indy.
На форме: Button (для нее и будет писаться код), Memo и IdHTTP.

В переменной PageProfile (string) в итоге у нас окажется код страницы профиля.


Итак, первый способ: самый очевидный – через главную страницу vkontakte.ru.
Заходим на главную страницу, включаем снифер.
Вводим верные данные, видим два запроса, а также то, что после авторизации идет перенаправление на страницу профиля.
Пишем код:


Код:
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.
Совсем недавно ВК предоставил разработчикам возможность авторизации на их сайтах, используя учетную запись ВКонтакте. И на многих сайтах уже появляются кнопочки “Войти ВКонтакте”, “Поделиться в друзьями” и т.п.
При нажатии на такую кнопку возникает форма для авторизации в ВК. Опять включаем снифер, вводим данные учетной записи и пишем код:


Код:
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

[COLOR="rgb(0, 255, 255)"]Третий способ: самый простой – просто один GET-запрос.
Откуда есть пошел такой способ не знаю, но раз он есть, грех им не воспользоваться))
Просто GET-запрос, в адрес которого вставляем логин и пароль:[/COLOR]


Код:
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;
(С)автух
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 19.02.2011, 23:26   #2
 Разведчик
Аватар для tracefthebest
 
tracefthebest никому не известный тип
Регистрация: 26.01.2011
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
Отправить сообщение для tracefthebest с помощью ICQ Отправить сообщение для tracefthebest с помощью Skype™
 
По умолчанию Re: Делфи - Авторизация вконтакте

Сделай видео,буду благодарен
  Ответить с цитированием
Старый 12.06.2011, 22:17   #3
 Разведчик
Аватар для Sacrifis
 
Sacrifis на правильном пути
Регистрация: 09.03.2011
Сообщений: 2
Популярность: 62
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Делфи - Авторизация вконтакте

а можно код с баттоном+edit1+edit2?? буду очень благодарен
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация на сайте (пример c vBulletin) TakeThat Pascal/Delphi 9 25.05.2013 23:26
[Обсуждение] авторизация удобота по логину и паролю leess123 Общение и обсуждение 0 12.01.2011 23:40
[Программа] Моя авторизация: Тестовая программа V.I.R.U.S. Dark Orbit 22 24.08.2010 06:15
Моя авторизация: проблемные ники V.I.R.U.S. Общение и обсуждение 11 18.08.2010 16:35
[Help] ФГ авторизация manstrrr Вопросы и ответы: RF Online 1 03.12.2009 22:06

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 06:08.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net