Проект VK API в Delphi. Удаление сообщений

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

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

  • messages.get

Когда мы получали с помощью данного метода сообщения, мы получали идентификатор отправителя, само сообщения, так вот там был тег <mid></mid> в формате XML, когда мы получали, так вот, что было заключено в данном теге — это и был идентификатор нашего сообщения, я добавил строчку кода, когда мы получали список сообщений парсинга этого идентификатора и еще один TListBox на вкладку «Сообщения«, где будет отображаться список всех идентификаторов сообщений

Вот таким вот образом я получал список всех идентификаторов сообщений в TListBox

ListBox5.Items.Add(Pars(logVK,'<mid','</mid>',0));

Давайте же теперь поговорим, а какой собственно метод отвечает за удаление сообщений. Хочу сразу сказать, что для удаления сообщений через приложения для него должна стоять битовая маска с правами не меньше 4096. Также хочу сказать, что опять таки в документации API по данному методу написана версия API 2.0, на самом деле 3.0, при 2.0 будет писать, что данный метод не существует или в этом роде. Ну а так все как и раньше, больше ничего не надо придумывать, только создать подпись безопасности в алфавитном порядке или же ошибка — «Неверная подпись«.

Сам метод для удаления сообщений называется

  • messages.delete

То есть из названия все понятно, теперь давайте пройдемся по его параметрам.

api_id - идентификатор приложения

sig - подпись безопасности

v - версия API (в документации написана 2.0, на самом деле 3.0)

mid - идентификатор сообщения, которое необходимо удалить

format - XML или JSON

test_mode - если равен 1, то можно делать тестовые запросы к данным приложения

Первые 3 параметра являются обязательными, остальные нет, но очень похожие параметры на параметры подобных методов. Теперь я написал код, для удаления, он выглядит следующим образом

procedure TForm1.Button14Click(Sender: TObject);
var
 sig:string;
begin
   try
    PostVK:=TStringList.Create;
    sig:=Pchar(LabelMid.Caption)+'api_id=1918788format=XMLmethod=messages.deletemid='+ListBox5.Items[ListBox5.ItemIndex]+'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=messages.delete');
    PostVK.Add('mid='+ListBox5.Items[ListBox5.ItemIndex]);
    PostVK.Add('format=XML');
    PostVK.Add('sid='+Pchar(LabelSid.Caption));
    logVK:=IdHTTP1.Post('https://api.vkontakte.ru/api.php',PostVK);
    if pos('<response>1</response>',logVK)<>0 then
     ShowMessage('Delete message OK')
    else
     ShowMessage('Not Delete message');
    PostVK.Free;
   except
    on e:Exception do
     PostVK.Free;
   end;
end;

То есть, если будем возвращен результат 1, то это означает, что сообщение ваше удалено без ошибок, если что-то не так, то возвратится код ошибки. Сообщения у меня удаляет под тем идентификатором, который выделен в TListBox. Вот и все по данному методу, в следующей статье рассмотрим работы со стеной пользователя.

Facebook Vk Ok Twitter LinkedIn Telegram

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

Здравствуйте, давненько я не писал про проект VK API в Delphi, на этот раз хочу продолжить серию статей про данный проект, тем более, что еще достаточно много не рассмотрено функций по работе с VK API. В последних статьях про VK API в Delphi мы рассмотрели фун...
Ну вот наконец-то, мы добрались и до отправке sms-сообщений через sms-шлюз средствами Delphi. Теоретическую часть sms-шлюза мы знаем, а также знаем как отправлять email-сообщения средствами Delphi. Это нам все и пригодится в данной статье. Давайте вспомним, чт...
Здравствуйте, вот решил наконец-то вернуться к написанию статей о проекте VK в Delphi. Давненько я не писал, но вот решил закончить серию статье по работе со стеной пользователя. На этот раз мы рассмотрим как можно удалять сообщения со стены пользователя. По у...