Здравствуйте, в этой статье я хотел бы опять таки поговорить о VK API в Delphi. На этот раз мы поговорим как можно добавить комментарий к видеозаписи, а точнее каким методом API необходимо воспользоваться, чтобы создать комментарий. Мы уже похожий пример рассматривали, когда добавляли комментарии к фотографиям. Здесь почти тоже самое, только используется другой метод, а также другие параметры, хотя по значениям они одни и теже. То есть при отправке комментария к фотографии, на стену, необходимо было указывать идентификатор пользователя или фотографии, а также само сообщение, так вот здесь тоже самое, только необходимо указывать идентификатор видеозаписи. Итак сам метод API называется

  • video.createComment

Он имеет следующие параметры

  • vid - идентификатор видеозаписи, для которой необходимо оставлять комментарий.
  • owner_id - идентификатор пользователя, который оставляет комментарий для видеозаписи, по умолчанию текущий пользователей
  • message - текст сообщения комментария, но не меньше 2-х символов.

Здесь обязательными параметрами являются только 2 , это — vid, то есть идентификатор видеозаписи, для которого необходимо оставлять комментарий, а также message - текст сообщения комментария. Кроме этого, для того, чтобы пользователь мог добавлять комментарий к видеозаписи, для нашего приложения должны стоять права с битовой маской не менее 16.

Далее на вкладку «Видеозаписи» в нашей программе я добавил еще несколько следующих компонентов

  • TEdit
  • TListBox
  • TButton

TEdit - для того, чтобы вводить текст сообщения (текст комментария), а TListBox выводится список идентификаторов видеозаписей. Да, в статье, где я рассказывал про то, как найти видеозаписи в ВК по определенному запросу , я дописал код, чтобы в наш TListBox выводились отдельно идентификаторы видеозаписей, а в той статье мы их склеивали с идентификатором пользователя. После того, как я получаю список видеозаписей, на кнопку «Отправить»  (на событие OnClick) я написал следующий код

procedure TForm1.Button28Click(Sender: TObject);
var
 sig:string;
begin
   try
    PostVK:=TStringList.Create;
    sig:=Pchar(LabelMid.Caption)+'api_id=1918788format=XMLmessage='+AnsiToUtf8(Edit10.Text)+'method=video.createCommentv=3.0vid='+ListBox15.Items[ListBox15.ItemIndex]+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.createComment');
    PostVK.Add('vid='+ListBox15.Items[ListBox15.ItemIndex]);
    PostVK.Add('message='+AnsiToUtf8(Edit10.Text));
    PostVK.Add('format=XML');
    PostVK.Add('sid='+Pchar(LabelSid.Caption));
    logVK:=IdHTTP1.Post('http://api.vkontakte.ru/api.php',PostVK);
    PostVK.Free;
    ShowMessage(logVK);
   except
    on e:Exception do
     begin
      PostVK.Free;
     end;
   end;
end;

Здесь я использую функцию AnsiToUtf8 для преобразования в UTF8 кодировку текста комментария, так как именно такая кодировка используется на сервере. А также необходимо составить правильно подпись безопасности в алфавитном порядке. Кроме этого часто может вылетать вот такая вот ошибка при отправке сообщения (ошибка API)

  • Permission to perform this action is denied by user

Что означает то, что для нашего приложения запрещен доступ, то есть запрещено оставлять комментарии. Но раз данное сообщение появляется, значит мы выполняем все правильно, только лишь мы не можем оставить комментарий, так как у нашего приложения недостаточно прав доступа. А ответ с сервера об успешной выполненной работе придет в виде идентификатора комментария.

Остальные ошибки могут быть следующими

Код ошибки Описание
1 Unknown error occurred.
2 Application is disabled. Enable your application or use test mode.
4 Incorrect signature.
5 User authorization failed.
6 Too many requests per second.
7 Permission to perform this action is denied by user
14 Captcha is needed
100 One of the parameters specified was missing or invalid

Ошибка  14 Captcha is needed, которая также может часто возникнуть, если пользователь будет ну очень часто отправлять, например, комментарии в одну и ту же видеозапись, это такая вот защита от спама.

А те, кто занимаются разработкой конфигураций под 1С, есть работа программист 1с киев с хорошей оплатой труда

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

Автор статьи - Andrey53

Метки: , , , , ,




К записи “Проект VK API в Delphi. Добавляем комментарий к видеозаписи” оставлено комментариев: 1.

  1. Спасибо, всё получилось.

Оставить комментарий

Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*