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

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

Здравствуйте, в этой статье я хотел бы опять таки поговорить о 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('https://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, которая также может часто возникнуть, если пользователь будет ну очень часто отправлять, например, комментарии в одну и ту же видеозапись, это такая вот защита от спама.

Facebook Vk Ok LinkedIn Telegram

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

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