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

Этой статьей я хотел бы начать работу с видеозаписями в ВК. Ближайшая серия статей будет посвещена именно работе с видеозаписями, то есть будем искать видеозаписи по определенному запросу, получать список видеозаписей на которых отмечен пользователь, работать с комментариями к видеозаписи и много другое. В этой статье мы рассмотрим как можно найти видеозаписи по определенному запросу. Итак, что для этого нам понадобится, во-первых как всегда создадим в нашем проекте новую вкладку и зададим ей 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('http://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;

Вот тут мы получили идентификаторы видеозаписей, в следующей статье мы рассмотрим как можно получить информацию о конкретной видеозаписи.
Добавлено: 15 Августа 2013 06:05:49 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...