Проект VK API в Delphi. Поиск видеозаписей в ВК

3 минуты на чтение

Этой статьей я хотел бы начать работу с видеозаписями в ВК. Ближайшая серия статей будет посвещена именно работе с видеозаписями, то есть будем искать видеозаписи по определенному запросу, получать список видеозаписей на которых отмечен пользователь, работать с комментариями к видеозаписи и много другое. В этой статье мы рассмотрим как можно найти видеозаписи по определенному запросу. Итак, что для этого нам понадобится, во-первых как всегда создадим в нашем проекте новую вкладку и зададим ей Caption — «Видеозаписи». Далее на ней мы расположим следующие компоненты

  • TButton
  • TEdit
  • TListBox

В TListBox мы будем размещать после парсинга, например, идентификаторы видеозаписей или полное название, найденной видеозаписи. Итак теперь перейдем к самому методу

  • video.search

Для, того, что его использовать у приложения должны быть права минимум с битовой маской 16. Итак теперь рассмотрим параметры данного метода

  • api_id - идентификатор приложения
  • sig - подпись безопасности
  • v - версия API, версия в документации ВК — 2.0, а на самом деле текущая версия API — 3.0
  • q - строка поискового запроса. То есть то, что мы будет искать по всем видеозаписям
  • sort — вид сортировки видеозаписей в ответе с сервера, 1 — по длительности видеозаписи, 0 — по дате добавления
  • hd — если не равен нулю, то поиск будет осуществляться по видеозаписям только высокого качества.
  • count - количество возвращаемых видеозаписей, но не больше 200
  • offset - смещение для выборки определенного подмножества
  • format - формат, возвращаемых данных XML или JSON
  • test_mode - если равен 1, то разрешает тестовые запросы к данным приложения

Первые четыре параметры являются обязательными при составлении запроса.

Итак, также не забываем использовать AnsiToUtf8, чтобы запрос передался в правильно кодировки. Также тут необходимо правильно составить подпись безопасности. Пропарсить результат можно удобным для Вас способом. Ну что теперь на событие OnClick напишем следующий код и получим список идентификаторов нашего видео.

procedure TForm1.Button25Click(Sender: TObject);
var
 sig:string;
 i:integer;
begin
   try
    PostVK:=TStringList.Create;
    sig:=Pchar(LabelMid.Caption)+'api_id=1918788format=XMLmethod=video.searchq='+AnsiToUtf8(Edit8.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.search');
    PostVK.Add('format=XML');
    PostVK.Add('q='+AnsiToUtf8(Edit8.Text));
    PostVK.Add('sid='+Pchar(LabelSid.Caption));
    logVK:=IdHTTP1.Post('https://api.vkontakte.ru/api.php',PostVK);
    PostVK.Free;
    ListBox14.Clear;
    i:=1;
    while (i<=length(logVK)) do
     begin
      if pos('<id>',logVK)<>0 then
       begin
        ListBox14.Items.Add(Pars(logVK,'<id','</id>',0));
        delete(logVK,1,pos('</id>',logVK));
        i:=0;
       end;
      inc(i);
     end;
   except
    on e:Exception do
     begin
      PostVK.Free;
     end;
   end;
end;

Вот тут мы получили идентификаторы видеозаписей, в следующей статье мы рассмотрим как можно получить информацию о конкретной видеозаписи.

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

Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Здравствуйте, давненько я не писал про проект VK API в Delphi, на этот раз хочу продолжить серию статей про данный проект, тем более, что еще достаточно много не рассмотрено функций по работе с VK API. В последних статьях про VK API в Delphi мы рассмотрели фун...
Вот хочу запустить проект VK API в Delphi(Вконтакте API в Delphi), в связи с тем, что сам сайт вконтакте открыл возможно обращаться к серверу API Vkontakte из Desktop-приложений. Довольно интересно, так как можно написать свой IM-клиент для контакта и общаться...
Здравствуйте, в этой статье, я хотел бы поговорить о том, как можно реализовать поиск слов, строк и так далее, в компонентах TRichEdit и TMemo. С данными компонентами Вы уже работали, так что нам не составит труда организовать поиск, который я задумал. Итак, ч...