Ребят помогите очень нужно... Пишу программу для собственных нужд... Авторизацию Вконтакте.ru прохожу успешно Но незнаю как можно считать имя и фамилию и id анкеты под которой вошёл... Чтобы потом её записать например в Label Помогите пожалуйста готовым кодом... у меня уже мозг плывёт
Всё равно ничего не выходит... Уже поставил себе Indy 10... Думал в нём проблема... Всё равно никак... Вот что я делаю: http://dump.ru/file/4065647
Вот Code: http:=TIdHTTP.Create(Self); data :=TStringList.Create; CooM:=TidCookieManager.Create(http); http.AllowCookies:=true; http.CookieManager:=CooM; http.HandleRedirects:=true; data.Add('u=1'); data.Add('success_url='); data.Add('fail_url='); data.Add('try_to_login=1'); data.Add('email='+Edit1.Text); data.Add('pass='+Edit2.Text); Page:= http.Post('http://vkontakte.ru/login.php?', data); memo1.text:=page; memo2.Text:=http.Get('profile.php')
Стандартное взаимодействие приложения с API ВКонтакте производится путем создания HTTP-запроса (POST или GET) к адресу API-сервиса http://api.vkontakte.ru/api.php или http://api.vk.com/api.php в зависимости от того, откуда запущено приложение. Этот адрес можно получить из flashVars или из параметров Flash-контейнера в зависимости от того, каким способом запускается приложение. Сервер принимает не более трёх запросов в секунду, содержащих одинаковые параметры api_id и viewer_id. То есть запущенное конкретным пользователем приложение не должно отправлять более трёх запросов в секунду, в противном случае сервер возвращает ошибку "Too many requests per second". Расширенная информация о пользователе включающая все что те нужно http://vkontakte.ru/pages.php?o=-1&p=getUserInfoEx
что то типа этого))) Code: uses ...IdHTTP, IdHashMessageDigest; .... // От и до... function Parse(_to, AFrom, to_: string): string; begin If (Length(_to) = 0) or (Length(AFrom) = 0) or (Length(to_) = 0) Then Exit; Result := Copy(AFrom, Pos(_to, AFrom) + Length(_to), Length(AFrom)); Delete(Result, Pos(to_, Result), Length(Result)); end; { Перевод в MD5 } function md5(s: string): string; begin Result := ''; with TIdHashMessageDigest5.Create do try Result := AnsiLowerCase(AsHex(HashValue(s))); finally Free; end; end; { Функция подписи запроса} function SignRequest(const Request, mid, Secret: string): string; var sIn : TStringList; sTmp : string; sCur : string; I : Integer; begin sIn := TStringList.Create; sTmp := Request; sTmp := StringReplace(sTmp, '%20', ' ', [rfReplaceAll]); sTmp := sTmp + '&'; While (Pos('&', sTmp) <> 0) do begin sCur := Copy(sTmp, 1, Pos('&', sTmp) - 1); Delete(sTmp, 1, Pos('&', sTmp)); sIn.Add(sCur); end; sIn.Sort; For I := 0 To sIn.Count -1 do begin Result := Result + sIn[i]; end; Result := MD5(mid + result + secret); sIn.Free; end; function userinf(): string; var Req : string; Sig : string; begin Req := 'method=getUserInfo&api_id=1931178&v=3.0&format=XML'; Sig := SignRequest(Req, mid, secret); Req := Req + '&sig=' + sig + '&sid=' + sid; Result := AnsiToUTF8(HTTP.Get('http://api.vkontakte.ru/api.php?' + req)); Result := Parse('<user_name>', Result, '</user_name>'); end;