用户在Facebook评论框中添加评论时发送电子邮件

时间:2011-11-27 07:52:00

标签: php javascript facebook

我刚才在我的网站上添加了一个Facebook评论框。我现在想要的是当有人添加评论时触发一些代码“在php中的mail()”。我希望我的网站向用户发送一封电子邮件,告诉他/她访问者已对您的项目/页面发表评论。

使用我创建的旧评论部分很容易,但我现在不知道如何使用FB。它甚至可能吗?

如果是,请详细解答,如果你不介意,因为我对此并不擅长:)

2 个答案:

答案 0 :(得分:2)

如果我理解正确,Facebook已经通过他们的网站包含了集成的电子邮件通信。 I.E.,如果Facebook用户为您的评论主题启用了通知,则会根据请求向该用户发送一封电子邮件。实现这一目标的唯一另一种方法是将您自己的评论框破解并将其与Facebook API挂钩。

答案 1 :(得分:2)

如果你对FB已经提供的解决方案不满意(正如scjosh所解释的那样),你可以使用Facebook的Javascript SDK ajax(jquery将是我最喜欢的)来加载带有mail()函数的脚本。

首先加载JS SDK(确保更改'YOUR_APP_ID'和channelURL !!):

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      oauth      : true, // enable OAuth 2.0
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     d.getElementsByTagName('head')[0].appendChild(js);
   }(document));
</script>

有关js sdk的更多信息,加载和频道文件可以是found here。你应该有一个应用程序或在Facebook创建一个应用程序。有关设置应用的信息is here

下一步是使用每个jquery的mail()加载脚本:

FB.Event.subscribe('edge.create',
    function(response) {
        $(document).load('mail.php?response='+response);
    }
);

最后是mail.php:

if(isset($_GET['response'])) {
$msg = 'A comment was left on '.$_GET['response'];
mail('user@webpage.com','New comment',$msg);
}

希望有所帮助!