Здравствуйте, в этой статье хотел бы все также продолжить тему о работе с фотографиями в ВК. На этот раз хотел бы рассмотреть — получение фотографий, на которых отмечен пользователь, то есть не обязательно, чтобы это были именно Вы, можно также и получить фотографии, на которых отмечен какой-либо Ваш друг. Немного раньше мы рассмотрели как нам можно лучше сделать парсинг XML-данных. Так как мы очень часть получаем результат в виде XML, то каждый раз надоедает писать цикл и в нем обрабатывать, вот немного упростили задачу, все таки еще много методов ВК, которые необходимо будет получать данные в формате XML. Вернемся к нашему методу, который получает список фотографий, на котором отмечен пользователь, он имеет название
- photos.getUserPhotos
У него следующие параметры
- api_id - идентификатор приложения
- sig - подпись безопасности
- v - версия API, в документации ВК — 2.0, на самом деле — 3.0
- uid - идентификатор пользователя, для которого необходимо смотреть список фотографий, на которых он отмечен
- offset - смещение необходимое для выборки фотографий
- count - количество фотографий, которое необходимо получить, но не больше 100 фотографий
- format - формат данных — XML или JSON
- test_mode - если равен 1, то разрешает тестовые запросы к данным приложения
Первые 3 параметра являются обязательными, так что не забудьте составить подпись безопасности правильно, то есть в алфавитном порядке. Результатом работы запроса будет массив объектов
Это
- count - количество фотографий, на которых отмечен пользователь
- created - время отметки фото
- src, src_big, src_small — фотографии в разных разрешениях
А также кто отмечал кого отмечали — то есть идентификаторы этих пользователей.
На форму добавил лишь TButton и TListBox, в TListBox будем отображать ссылки наших фотографий. Для этого на OnClick кнопки напишем код получения наших ссылок, для этого еще в Uses подключим модуль Parser, который поможет нам без цикла получать список фотографий. Для этого мы лишь только создадим объект класса
procedure TForm1.Button24Click(Sender: TObject);
var
sig:string;
ParsXML:TParserXML;
begin
try
ParsXML:=TParserXML.Create;
PostVK:=TStringList.Create;
sig:=Pchar(LabelMid.Caption)+'api_id=1918788format=XMLmethod=photos.getUserPhotosuid='+Edit7.Text+'v=3.0'+Pchar(LabelSecret.Caption);
sig:=md5(sig);
PostVK.Clear;
PostVK.Add('api_id=1918788');
PostVK.Add('sig='+sig);
PostVK.Add('v=3.0');
PostVK.Add('method=photos.getUserPhotos');
PostVK.Add('format=XML');
PostVK.Add('uid='+Edit7.Text);
PostVK.Add('sid='+Pchar(LabelSid.Caption));
logVK:=IdHTTP1.Post('https://api.vkontakte.ru/api.php',PostVK);
ListBox12.Items:=ParsXML.ParsXMLArr(logVK,'src_big');
PostVK.Free;
ParsXML.Free;
except
on e:Exception do
begin
ParsXML.Free;
PostVK.Free;
end;
end;
end;
Как видите довольно быстро и легко получаем список наших фотографий, только лишь указываем тег между которым нам необходимо получать ссылку на данное фото. В следующей статье рассмотрим работу с фотографиями — как можно отредактировать комментарий фотографии и это будет наш последний урок по работе с фото в ВК, по крайней мере я так думаю. Да и не забывайте, что мы работали с вкладкой «Фотографии» в нашем проекте, туда же и добавляли наши компоненты, новые