Проект VK API в Delphi. Получение списка сообщений

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

Здравствуйте, вот все продолжаю мучать VK API в Delphi. На этой раз «перст пал» на расширенные методы API. К данным методам относятся

  • работа с личными сообщениями
  • работа со стеной пользователя
  • работа с фотографиями и альбомами фотографий

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

  • messages.get

Данный методу имеет следующие параметры

 

 

  • api_id — идентификатор приложения
  • sig — подпись безопасности
  • v — версия API(тут и возникли проблемы, расскажу ниже)
  • out — если равен 1, то вернет исходящие сообщения
  • offset — смещение, необходимое для выборки определенного подмножество сообщений
  • count — кол-во сообщений, которое необходимо получить (не больше 100)
  • filters — фильтр, получаем сообщений (1 — только не прочитанные, 2 — не из чата, 4 — сообщения от друзей)
  • preview_length — кол-во символов по которому необходимо обрезать сообщение
  • time_offset — максимальное время, прошедшее с момента отправки сообщений до текущего в секундах
  • format — XML или JSON
  • test_mode — если этот параметр равен 1, то разрешает тестовые запросы к данным приложения.Данный параметр позволяет тестировать приложение без загрузки его на сайт.

Первые 3 параметра являются обязательными как получить подпись безопасности я рассказывал, также хочу сказать, что для того, чтобы получать сообщения из вашего аккаунта необходимо, чтобы для данного приложения стояли права с битовой маской не менее 4096. Другими словами в настройках доступа данного приложения должна стоять галочка работы с Личными сообщениями. Вот что я хотел сказать про v (версию API). На сайте ВК по данному методу написано, что версия API для данного метода должна быть 2.0, я не понял почему, мне все время выдавало ошибку, что типа метод такой не существует, далее я поставил версию 3.0 все заработало, не понимаю почему ВК для таких расширенных методов не предоставила нормальную информацию.

Я создал новую вкладку на TPageControl в программе и поместил туда TListBox - 2 шт и TButton. В первом TListBox будет сообщение, а во втором идентификатор того, кто отправил и мы сможем посмотреть его профиль. На событие OnClick TButton я написал следующий код

procedure TForm1.Button11Click(Sender: TObject);
var
 PostVK:TStringList;
 sig:string;
 i:integer;
begin
   try
    i:=1;
    ListBox3.Clear;
    ListBox4.Clear;
    PostVK:=TStringList.Create;
    sig:=Pchar(LabelMid.Caption)+'api_id=1918788format=XMLmethod=messages.getv=3.0'+Pchar(LabelSecret.Caption);
    sig:=md5(sig);
    PostVK.Add('api_id=1918788');
    PostVK.Add('method=messages.get');
    PostVK.Add('format=XML');
    PostVK.Add('v=3.0');
    PostVK.Add('sig='+sig);
    PostVK.Add('sid='+Pchar(LabelSid.Caption));
    logVK:=IdHTTP1.Post('https://api.vkontakte.ru/api.php',PostVK);
    while (i<=length(logVK)) do
     begin
      if (pos('<body>',logVK)<>0) then
       begin
        ListBox3.Items.Add(Utf8ToAnsi(Pars(logVK,'<body','</body>',0)));
        ListBox4.Items.Add(Utf8ToAnsi(Pars(logVK,'<uid','</uid>',0)));
        Delete(logVK,1,pos('</uid>',logVK));
        i:=0;
       end;
      inc(i);
     end;
    PostVK.Free;
   except
    on e:Exception do
     PostVK.Free;
   end;
end;

Ну я чуток подредактировал наше приложение, там чуток может навел красоты, ну и надо уже брать за модуль, а также в следующий статьях рассмотрим как можно отправлять сообщения. Полный исходник проекта VK API в Delphi можете скачать тут

Facebook Vk Ok LinkedIn Telegram

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

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