Делаю клиент для себя, не могу пройти авторизацию. Сделал тестовое приложение и пытаюсь авторизоваться в нем средствами делфи. Создал форму бросил на нее кнопку и WebBrowser1 окошко. Сделал action onclick WebBrowser1.Navigate('http://vkontakte.ru/login.php?app=(номер приложения)&layout=popup&type=browser'); . Загружаеться окно авторизации ввожу почту пароль но ничего не отправляеться при нажатии кнопки разрешить, обьясните что я делаю не так? я нуб в делфи, пробовал вставить ссыылку написанную выше в браузер выдаеться сообщение "Login success". Присваиваиваються sid secret и другие необходимые значения
Раз вылетает у IE ошибка в скрипте - думаю вариант бесполезный, придется делать на Indy или Synapse. Там в два счета это сделать можно, есдинственно тебе придется не только вводить ID приложения, но еще и куки, или делать полноценную авторизацию ВК. Еще можно IE посвежее поставить.
сначала перейди по той же ссылке у себя в броузере, но layout поставь 15615 и нажми разрешить. потом в дельфи авторизуйся через indy: Code: var http:idhttp; function Pars(str,str_begin,str_end:String;count:integer):String; begin Delete(str,1,pos(str_begin,str)+length(str_begin)); Delete(str,pos(str_end,str)-count,length(str)); Pars:=str; end; function api_auth(email,pass,app_id:WideString):TStrings; var logVK:WideString; PostDataVK:TStringList; begin try if Result=nil then Result:=TStringList.Create; HTTP:=TidHTTP.Create(nil); logVK:=HTTP.Get('http://vkontakte.ru/login.php?app='+app_id+'&layout=popup&type=browser&settings=15615'); PostDataVK:=TStringList.Create; PostDataVK.Add('act=login'); PostDataVK.Add('app='+app_id); PostDataVK.Add('app_hash='+Pars(logVK,'app_hash = ',';',1)); PostDataVK.Add('email='+email); PostDataVK.Add('pass='+pass); PostDataVK.Add('permanent=1'); logVK:=HTTP.Post('http://login.vk.com/',PostDataVK); PostDataVK.Clear; PostDataVK.Add('s='+Pars(logVK,'value=','/>',2)); PostDataVK.Add('act=auth_result'); PostDataVK.Add('m=4'); PostDataVK.Add('parmanent=1'); PostDataVK.Add('expire=""'); PostDataVK.Add('app='+app_id); PostDataVK.Add('app_hash='+Pars(logVK,'app_hash" value=','"',0)); logVK:=HTTP.Post('http://vkontakte.ru/login.php',PostDataVK); Result.Add(Pars(logVK,'mid"',',',0)); Result.Add(Pars(logVK,'sid":','",',0)); Result.Add(Pars(logVK,'secret":','",',0)); PostDataVK.Free; except on e:Exception do begin PostDataVK.Free; end; end; end;
Спасибо realcoder, когда передал значение 15615 http://vkontakte.ru/login.php?app=2245425&layout=popup&type=browser&settings=15615 в браузере появился запрос ко всему фотографиям друзьм итд теперь получаеться авторизоваться в программе, буду вникать в код и читать про апи контакта