Здравствуйте, давненько я не писал про проект VK API в Delphi, на этот раз хочу продолжить серию статей про данный проект, тем более, что еще достаточно много не рассмотрено функций по работе с VK API. В последних статьях про VK API в Delphi мы рассмотрели функции API по работе с видеозаписями: как получить список видеозаписей по конкретному запросу пользователя и как узнать информацию по конкретной видеозаписи, подробную информацию. На этот раз я хотел бы поговорить о том, как можно получить список видеозаписей, на которых отмечен сам пользователь. Функция довольно простая, да и в основном параметров в ней нету, всего 3 параметра и те, которые не обязательные для нее. Давайте подробнее рассмотрим данные параметры функции для получения видео, на которых отмечен пользователь. Функция называется

  • video.getUserVideos

Теперь по ее параметрам

  • uid - идентификатор пользователя, для которого необходимо получать список видео, на которых он отмечен
  • offset - смещение необходимое для выборки определенного количества видеозаписей
  • count - количество видеозаписей, которое необходимо получить, но не больше 100.

Ну естественно, есть такие замечательные параметры, которые Вам также необходимо будет указать, это, например format и указать в каком формате Вам выводить данные в XML или JSON.

Итак, для успешной работы данной функции VK API, нам потребуется еще, чтобы у нашего приложения было установлены права с битовой маской не меньше 16. После того как подготовим все данные для отправки их на сервер VK API, при правильной их отправке, нам еще необходимо составить подпись безопасности в алфавитном порядке, не забывайте про это, мы получим ответ с сервера в виде массива объектов. В данный массив объектов будет входить следующее:

  • id
  • title
  • description
  • owner_id
  • duration
  • date
  • thumb

Данные объекты придут нам в ответе с сервера. По названием можно определить, что это за такие объекты. Теперь Вам останется только лишь пропарсить Ваш ответ и получить нужную информацию, в данном случае мы пропарсим title-объект, то есть название видео, на котором отмечен пользователь. Да кстати на вкладку «Видеозаписи» я поместил 2 компонента

  • TButon
  • TListBox - будет отображаться название видеозаписей, на которых отмечен пользователь
  • TEdit - для того, чтобы вводить идентификатор пользователя, для которого необходимо посмотреть все видеозаписи, на которых он отмечен

Теперь на событие OnClick мы напишем следующий код, которых будет отправлять на сервер VK API данные и получать ответ, а также обрабатывать его и все называние видеозаписей, на которых отмечен пользователь будет добавлять в TListBox

procedure TForm1.Button27Click(Sender: TObject);
var
 sig:string;
begin
   try
    ListBox13.Clear;
    PostVK:=TStringList.Create;
    sig:=Pchar(LabelMid.Caption)+'api_id=1918788format=XMLmethod=video.getUserVideosuid='+Edit9.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=video.getUserVideos');
    PostVK.Add('uid='+Edit9.Text);
    PostVK.Add('format=XML');
    PostVK.Add('sid='+Pchar(LabelSid.Caption));
    logVK:=IdHTTP1.Post('http://api.vkontakte.ru/api.php',PostVK);
    PostVK.Free;
    repeat
     ListBox13.Items.Add(Utf8ToAnsi(Pars(logVK,'<title','</title>',0)));
     Delete(logVK,1,pos('</title>',logVK)+length('</title>'));
    until pos('title',logVK)=0;
   except
    on e:Exception do
     begin
      PostVK.Free;
     end;
   end;
end;

Не забываем использовать функцию перекодировки  Utf8ToAnsi, но это зависит от версии Indy, которую Вы используете.

Ошибки, которые могут возникнуть при  отправке запроса на сервер

Код ошибки Описание
1 Unknown error occurred.
2 Application is disabled. Enable your application or use test mode.
4 Incorrect signature.
5 User authorization failed.
6 Too many requests per second.
7 Permission to perform this action is denied by user
100 One of the parameters specified was missing or invalid
Хочу заметить, что сейчас очень много автомобилей, а прогресс дошел до того, что уже существуют автомобили с автоматической коробкой передач. Кстати довольно удобно и многие такие автомобили покупают. Кстати, советую подробно прочитать про данное устройство, очень интересно.

Полный исходник всего проекта можно скачать тут

Автор статьи - Andrey53

Метки: , , , , ,




К записи “Проект VK API в Delphi. Получение списка видеозаписей, на которых отмечен пользователь” оставлено комментариев: 2.

  1. Михаил:

    это ужасно.
    А ведь начинающие программисты могут заинтересоваться, и научатся у вас плохому.

  2. Andrey53:

    2Михаил ужасно, что именно? Как умею так и делаю,а выбирать, что и где читать остается право за каждым

Оставить комментарий

Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*