�?так, я установил плагин Facebook-комментариев на свой сайт. Проходит месяц, и я не получаю ни одного уведомления о новых комментариях. Ни одного комментария не было? Захожу на сайт, просматриваю страницы. Есть! За вчера, позавчера, неделю назад, две недели назад, месяц назад. Но почему я узнаю о них только сейчас?
Знакомая ситуация? Тогда читайте статью дальше, как можно узнавать и сделать уведомления о новых комментариях.
Способ №1. Как узнать о новых комментариях.
Если вы установили плагин Facebook-комментариев правильно, то в нём должны появится настройки. Нажимаете на ссылку «Настройки» справа и затем на ссылку «Модерировать комментарии»:
Вы также можете открыть эту ссылку модерации комментариев напрямую, сохранив ее в браузере. Выглядит ссылка так:
https://developers.facebook.com/tools/comments/?id=ID_ПР�?ЛОЖЕН�?Я |
В этой ссылке вам надо вставить свой ID_ПР�?ЛОЖЕН�?Я. Это идентификатор приложения, к которому привязывается плагин комментариев в тот момент, когда вы получаете код этого плагина:
После того, как вы перешли на страницу модерации комментариев, перед вами окажутся все комментарии, оставленные на сайте за все время в хронологическом порядке:
Под всеми комментариями нажимайте «Подписаться на обновления». Это позволит вам получать уведомления об ответах, а также позволит сразу определить, какие комментарии новые при следующем заходе на эту страницу модерации.
Достоинство этого способа: простота использования.
Недостаток: надо каждый день заходить на страницу модерации и проверять, появились новые комментарии или нет (если комментируют активно, то несколько раз в день заходить), — это неудобно.
Способ №2. Как сделать уведомления о новых комментариях себе на email.
Этот способ только для программистов.
Я приведу пример кода, благодаря которому на мой email будут приходить уведомления о новых комментариях из плагина Facebook.
Для примера я возьму плагин на тестовой веб-страницеhttp://www.masterskayafanstranic.com.ua/fbcommentmail/. Данный способ работает на любой html-странице, где может быть установлен плагин комментариев.
�?так, представим, что плагин еще не установлен. Для его установки надо вставить код Facebook-комментариев, а также дополнительный код, благодаря которому будет отслеживаться появление новых комментариев и пересылка данных в другой файл, к примеру, mail.php, который, в свою очередь, будет обрабатывать поступившие данные и отправлять на email.
Привожу код тестовой веб-страницы, где будет стоять плагин (назовём эту страницу index.html):
<! doctype HTML> < html > < head > < title >FB comments to email</ title > <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script> </ head > < body > <!--Служебная библиотека Facebook--> < div id = "fb-root" ></ div > <script> ( function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return ; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ru_RU/all.js#xfbml=1&appId=ID_ВАШЕГО_ПР�?ЛОЖЕН�?Я" ; fjs.parentNode.insertBefore(js, fjs); }(document, 'script' , 'facebook-jssdk' )); </script> <script src="https://connect.facebook.net/ru_RU/all.js"> </script> <script> window.fbAsyncInit = function () { FB.init({ appId : 'ID_ВАШЕГО_ПР�?ЛОЖЕН�?Я' , status : true , cookie : true , oauth : true , xfbml : true }); // Включаем отслеживание новых комментариев и отправляем их в mail.php FB.Event.subscribe( 'comment.create' , function (response) { $(document).load( 'mail.php?response=new' ); }); }; </script> <!--Код плагина комментариев Facebook--> < div style = "width:550px; padding:10px 0px 20px 0px;" > < h2 >Комментарии с уведомлениями на email</ h2 > < div class = "fb-comments" data-href = "ВАШ_URL_ГДЕ_СТО�?Т_ПЛАГ�?Н" data-num-posts = "2" data-width = "550" ></ div > </ div > </ body > </ html > |
Объяснение кода:
все, что идет перед тегом <body> — стандартная часть для всех. После тега <body>идет служебная библиотека Javascript Facebook. В ней надо вставить только идентификатор вашего Facebook-приложения (об этом шла речь в начале статьи) в двух местах.
все, что идет перед тегом <body> — стандартная часть для всех. После тега <body>идет служебная библиотека Javascript Facebook. В ней надо вставить только идентификатор вашего Facebook-приложения (об этом шла речь в начале статьи) в двух местах.
Затем идет самое интересное — код отслеживания новых комментариев и пересылка данных в файл mail.php:
FB.Event.subscribe( 'comment.create' , function (response) { $(document).load( 'mail.php?response=new' ); }); |
�? в конце веб-страницы index.html — код самого плагина комментариев. Этот код генерируется в разделе для разработчиков Facebook.
Код веб-страницы index.html готов, переходим к файлу mail.php. Создадим его на компьютере, добавим в него нужный код и затем загрузим на хостинг в ту же папку, где находится index.html.
Код файла mail.php может быть очень коротким. Для получения email достаточно следующих двух строк:
<?php if (isset( $_GET [ 'response' ])) { $subject = 'Добавлен новый комментарий' ; $msg = 'Добавлен новый комментарий.' ; mail( "andrej_od@mail.ru" , $subject , $msg ); } ?> |
Этот код говорит о том, что каждый раз при появлении нового комментария в плагине Facebook на почту andrej_od@mail.ru будет приходить письмо с темой и текстом «Добавлен новый комментарий».
В принципе, для того, чтобы моментально узнавать о новом комментарии, такого письма достаточно. Но сейчас оно не настроено: не указаны служебные заголовки, не указана кодировка текста (скорее всего будут приходить кракозябры), не понятно, кто оставил комментарий, и нет самого текста комментария.
Сейчас email выглядит так:
Хорошо бы в email показать, кто написал комментарий, ссылку на его профиль, текст самого комментария и время. Для этой задачи дополним код mail.php:
<?php //достаем комментарии с веб-страницы в нужном формате $request_url = "https://graph.facebook.com/comments/?ids=http://www.masterskayafanstranic.com.ua/fbcommentmail/" ; //забираем эти данные $requests = file_get_contents ( $request_url ); //отслеживаем через эту переменные появление нового комментария $fb_response = json_decode( $requests ,true); //если появился новый, то делаем следующее: if (isset( $_GET [ 'response' ])) { //из каждого комментария вытягиваем имя, текст и время и записываем их в переменную, которую отправим на почту foreach ( $fb_response [ 'http://www.masterskayafanstranic.com.ua/fbcommentmail/' ][ 'comments' ][ 'data' ] as $item ){ //Придумываем тему письма $subject = 'New FB-comment' ; //HTML-код самого email-а $msg = ' <html> <body> <h2>Добавлен новый комментарий.</h2> <b>От кого:</b> <a href= "https://www.facebook.com/profile.php?id=' . $item['from']['id'] . '" > ' . $item[' from '][' name '] . ' </a><br /> <b>Комментарий:</b> ' . $item[' message '] . ' <br /> <b>Время:</b> ' . $item[' created_time '] . ' <br /> </body> </html> '; } // это служебные заголовки email-а $header = 'Content-type: text/html; charset=utf-8' . "\r\n" ; $header .= 'From: FB-plugin on web-site' . \r\n"; $header .= "X-Mailer: PHP/" . phpversion() . "\r\n" ; $header .= 'MIME-Version: 1.0' . "\r\n" ; //функция отправки email xmail( "andrej_od@mail.ru" , $subject , $msg , $header ); } ?> |
В этом коде в двух местах вам надо заменить ссылку веб-страницы с плагином на свою:
$request_url = "https://graph.facebook.com/comments/?ids=http://www.masterskayafanstranic.com.ua/fbcommentmail/" ; |
foreach ( $fb_response [ 'http://www.masterskayafanstranic.com.ua/fbcommentmail/' ][ 'comments' ][ 'data' ] as $item ) |
А также в функции отправки email-а вписать нужный вам email вместо моего:
xmail( "andrej_od@mail.ru" , $subject , $msg , $header ); |
Все остальное код сделает за вас. Оставшуюся часть можно не менять.
Осталось проверить результат. �?так, загружаю все необходимые файлы на хостинг в одну отдельную папку, перехожу на страницуhttp://www.masterskayafanstranic.com.ua/fbcommentmail/ и оставляю комментарий:
Затем перехожу в свою почту и проверяю уведомление:
Всё работает. E-mail отображается в формате HTML: имя пользователя — это ссылка на его профиль в Facebook, ниже сразу читаем сам комментарий, и третья последняя строка — время комментария.
Все файлы с примерами кодов, необходимые для реализации таких же уведомлений, вы можете скачать. Для этого нажмите «Мне нравится» и затем по ссылке скачайте архив файлов.
[like-gate]
В архиве есть одна папка mail и файл config.php, которые отвечают за создание и отправку HTML-письма.
Эти файлы менять не нужно, загружайте их на хостинг, как есть. В файле mail.phpвнесите изменения, о которых я говорил в статье. �? файл index.html просто для наглядности примера. У вас, конечно, будет своя веб-страница с установленным плагином.
Скачать