Записки WEB Мастера

О создании сайтов, блогов. WordPress, WEB Дизайн

Заметки

Отправка сообщения ВК когда появляется новый комментарий

Захотелось мне на одном из сайтов реализовать такую штуку. Когда на блоге появляется новый комментарий, то мне Вконтакте должно приходить Личное Сообщение, как бы уведомление о новом комментарии, который только-что появился на блоге.

Мне эта идея показалась интересной, так как, я практически уверен, что у тебя, дорогой читатель, прямо сейчас открыта вкладка «Вконтакте». А вот страница «Комментарии» в твоей админ-панели на блоге, нет! Даже если ВК часто закрыт, то на телефон, который чаще всего под рукой приходят уведомления о новых сообщениях ВК.

И если отправлять с блога уведомления в личку ВК о том, что кто-то оставил новый комментарий, можно очень оперативно отвечать на новые комментарии. А это как минимум + в репутацию блоггера от посетителей или подписчиков!

Этим все не ограничивается. Так как отправку ЛС в ВК из PHP можно использовать, например на лендинге и получать уведомления о новых заказах. В общем, где угодно…

уведомления о новых комментариях с блога в ЛС Вконтакте.

Что бы реализовать такой функционал на своём блоге потребует создать приложение ВК. Платформу следует выбрать » Standalone-приложение». После создания приложения понадобится «access_token».

Как получить «access_token», я рассказывать не буду, так как в сети полно статей на эту тему, и я не думаю, что  у меня получится объяснить лучше. Пожалуйста, посмотрите выдачу google по запросу «как получить access_token».

Теперь осталось открыть файл «functions.php» и реализовать задумку.

// Ловим момент отправки комментария
add_action( 'comment_post', 'uvedomleniye_vkontakte_o_novom_kommentarii');
function uvedomleniye_vkontakte_o_novom_kommentarii() {
 
  // Получим последний комментарий.
  $args_comm_vk = array(
    'number' => 1
  );
  $comments = get_comments($args_comm_vk);
  // Соберём немного информации о комментарии, что бы отправить её в личку ВК
    foreach ($comments as $comment) {
        $comm_autor         = $comment->comment_author;       // Имя комментатора
        $comm_autor_mail    = $comment->comment_author_email; // Мыло комментатора
        $comm_text          = $comment->comment_content;      // Текст комментария
    }
 
  // Сбор параметров для запроса ВК
    $vk_vomment_p = array(
        'user_id' => '00000000',       // Вашь ID Вконтакте.
        'random_id' => rand(1, 99999),  // ВК Требует случайный ID, сгенерируем.
        'peer_id' => '00000000',       // И ещё раз Вашь ID Вконтакте.
        'message' => 'На блоге новое сообщение. <br><br> Автор - ' . $comm_autor . ' <br>Mail - ' . $comm_autor_mail . ' <br><br>Сообщение - ' . $comm_text, // Сообщение.
        'access_token' => 'указать access_token',
        'v' => '5.67',
    );
 
  // Отправляем все в личку ВК
  $otpravka = "https://api.vk.com/method/messages.send?" . http_build_query($vk_vomment_p) ;
  file_get_contents($otpravka);
} // happy end :)

Значит, что  у нас тут есть. «Хук  comment_post» который, сработает сразу после добавления нового комментария.

После чего используем функцию «get_comments» с помощью, которой получим данные об этом комментарии. Вообще функцию «get_comments» можно не использовать, и без неё все будет работать.

Я её использую, что бы в сообщении ВК приходил текст самого комментария, имя комментатора и его E-Mail. Если Вам это не нужно, можно вырезать из кода функцию «get_comments».

И далее по коду, где собираются все параметры для запроса ВК в параметре «message» прописать что-то вроде «Новый комментарий».

Теперь каждый раз, как только кто-то из посетителей вашего Блога отправит комментарий, Вам в ВК будет приходить сообщение такого вида.

Как-то так это все будет выглядеть. Но минус, конечно есть, если у Вас блог собирает много спама, то придётся об этом позаботится, иначе личка ВК будет трещать. Я рекомендую повесить на форму комментариев «reCAPTCHA» меня спасла от спама, доволен. Теперь с блога будет приходить только уведомления о новом комментарии, а спама не будет.

Ссылки по теме.
Документация — https://vk.com/dev/manuals

Комментариев пока нет

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

Обязательно с протоколом http или https.