Здравствуйте, в этой статье я хотел бы поговорить как можно удалить сообщения, которые Вы хотите, будем так говорить. Для того, чтобы их удалить нам необходимо знать их идентификатор, то есть просто так по названию, по заголовку, по отправителю мы не сможем его удалить, нам обязательно надо знать идентификатор сообщения, который можно получить при вызове метода — получения всех сообщений — это метод
- messages.get
Когда мы получали с помощью данного метода сообщения, мы получали идентификатор отправителя, само сообщения, так вот там был тег
Вот таким вот образом я получал список всех идентификаторов сообщений в TListBox
ListBox5.Items.Add(Pars(logVK,',' ',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('http://api.vkontakte.ru/api.php',PostVK);
if pos('1 ',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. Вот и все по данному методу, в следующей статье рассмотрим работы со стеной пользователя.
В настоящее время очень важно иметь сайт, а тем более очень хорошо раскрученный. Некоторые не горят желанием заниматься раскруткой сайта из-за нехватки времени, например, но зато есть замечательный сервис seopult — автоматическая раскрутка площадки, которая поможет сделать Ваш сайт более популярным. |
Полные исходники проекта качаем тут
Автор статьи - Andrey53
Похожие записи
Метки: API, VK API, vkontakte, vkontakte API, вконтакте API