получать уведомления, когда кто-то комментирует, используя плагин комментариев - PullRequest
3 голосов
/ 21 декабря 2011

Итак, у меня есть приложение iFrame на фан-странице, которое включает плагин комментариев.Есть ли способ, которым я / любой администратор может получать уведомления или электронные письма каждый раз, когда кто-то добавляет комментарий?

1 Ответ

10 голосов
/ 21 декабря 2011

Вы можете подписаться на событие на comment.create и отправить уведомление администратору любым удобным для вас способом после создания комментария. Сам по себе Facebook не предоставляет такой функциональности.

Это может выглядеть следующим образом (я предполагаю, что Facebook JavaScript SDK уже загружен на страницу, прежде чем это сделать, прочитайте об этом в документации о загрузке, в любом случае, если вы используете плагин Social Comments, он должен быть загружен уже):

<script type="text/javascript">
  FB.subscribe('comment.create', function(response){
    // Here you need to do a call to some service/script/application
    // to notify your administrator about new comment.
    // I'll use jQuery ajax to call server-side script to illustrate the flow 
    $.post('//hostnamne/path/to/script', {
      "action": "comment created",
      "url_of_page_comment_leaved_on": response.href,
      "id_of_comment_object": response.commentID
    });
  });
</script>

В вашем скрипте, расположенном по адресу http(s?)://hostnamne/path/to/script, вы можете отправить уведомление администратору, как это сделать, может отличаться в зависимости от того, как вы этого хотите, например, если вы хотите отправить электронное письмо, вы можете использовать что-то вроде этого примера php (устаревший это просто пример потока, а не реальный код, который вы должны использовать):

 <?
   $admin_email = 'root@localhost';

   $commentID = $_REQUEST['id_of_comment_object'];
   $page_href = $_REQUEST['url_of_page_comment_leaved_on'];
   $message = "comment #{$commentID} was leaved on page {$page_href}";

   mail($admin_email, "You have a new comment", $message);
 ?>

Если вам нужно отслеживать удаление комментариев, вы можете использовать событие comment.remove с похожим потоком ...

...