Вчера я показал как можно получить информацию о пользователе из его профиля из сети ВК, теперь я эту функцию добавил в модуль VK_API. Это следующая функция -
function GET_VKAPI_PROFILES(app_id,sid,mid,secret,uids,format
,fields:string):WideString;
Следующие функции были добавлены также в модуль
- function GET_VKAPI_PROFILES(app_id,sid,mid,secret,uids,format
,fields:string):WideString;
- function md5(values:string):string;
- function OPEN_VK_API:boolean;
Здесь параметры
- app_id — идентификатор вашего приложения
- sid — данные сессии
- mid — идентификатор вашей страницы
- secret — секретный код из сессии, что раньше получали
- uids — список идентификаторов, про которые необходимо получить информацию (перечисляются через запятую)
- format — формат полученных данных (два варианта — XML или JSON)
- fields — список полей, которые необходимо получить из профиля (по умолчанию выводят имя и фамилия)
Md5 я рассказывал для чего, чтобы из строки получить идентификатор безопасности. Остальные все параметры — я рассказывал про них и мы их получали ранее.
Вспомним про прошлую функцию, которая получала данные сесии — это
- function GET_VKAPI_SESSION(email,pass,app_id:WideString):TStrings;
Так вот если Вы получаете данные сессии с помощью этой функции, то функцию OPEN_VK_API вызывать не нужно, а вот если Вы получаете данные сесии, например обычным способом, то есть сразу например на событие OnClick пишите получение сесии, то тогда необходимо вызвать функцию OPEN_VK_API.
Вот так я получаю данные сессии не с помощью функции из модуля, следовательно для получения информации из профиля я должен написать примерно следующий код
OPEN_VK_API;
ShowMessage(GET_VKAPI_PROFILES('1918788',Pchar(LabelSid.Caption),Pchar(LabelMid.Caption),Pchar(LabelSecret.Caption),Pchar(LabelMid.Caption),'XML',''));
Сначала функцией OPEN_VK_API создаю необходимые переменные, а затем вызываю функцию GET_VKAPI_PROFILES, которая вернет результат в виде формата, который вы указали в функции, затем Вам останется пропарсить эти данные и все.
А если я получаю данные сесии из модуля, то я должен написать примерно такой код на событие например OnClick TButton
procedure TForm1.Button4Click(Sender: TObject);
var
Session:TStringList;
mid,sid,secret:String;
begin
Session:=TStringList.Create;
Session.Add(GET_VKAPI_SESSION('ваш логин','ваш пароль','1918788').CommaText);
secret:=Session.Strings[0];
mid:=Pars(secret,'',',',0);
Delete(secret,1,pos(',',secret));
sid:=Pars(secret,'',',',0);
Delete(secret,1,pos(',',secret));
OPEN_VK_API;
ShowMessage(GET_VKAPI_PROFILES('1918788',sid,mid,stst,mid,'XML',''));
end;
То есть я сначала с помощью функции GET_VKAPI_SESSION получаю одной строкой все данные сесии, затем разбираю эти данные на нужные и вызываю функцию GET_VKAPI_PROFILES заметьте уже без функции OPEN_VKAPI. Дальше это я переделаю и будет более удобно, а пока, что вот такой вот «корявенький» модуль.