FB.event.subscribe comment.create在没有用户操作的情况下执行操作

时间:2013-02-20 19:40:07

标签: php facebook if-statement comments

好的,所以这是我的问题。一旦在Facebook评论中发表评论(通知作者已经发表评论),我正试图收到发送给个别帖子作者的电子邮件。评论框位于K2项目中(在Joomla中)。

FB.event.subscribe comment.create正在运行,我已经尝试过了 警报( '解雇'); 这很好。但是当我进入PHP时,它只是开始向每次有人进入页面时给出的第一封电子邮件发送电子邮件。如何在创建或添加评论时发送电子邮件?

<script>
    window.fbAsyncInit = function(){ 
        FB.Event.subscribe('comment.create', function(response){
            <?php
                if ($this->item->author->name = 'Author1'){
                    $to = "author1@mydomain.com";
                }else if ($this->item->author->name = 'author2'){
                    $to = "author2@mydomain.com";
                };
                $subject = "Test mail";
                $message = "Hello! This is a simple email message. live run";
                $from = "admin@mydomain.com";
                $headers = "From:" . $from;
                mail($to,$subject,$message,$headers);
            ?>;
        });
    };
</script>

修改 请点击此链接PHP variable from external file?获取有关此主题的完整解决方案以及我在此尝试完成的内容。

1 个答案:

答案 0 :(得分:0)

PHP执行服务器端。当回调被触发时,PHP已经执行(当请求页面时)。

相反,您需要在回调内部对PHP脚本进行AJAX调用,该脚本将执行您需要它执行的操作:

window.fbAsyncInit = function(){ 
    FB.Event.subscribe('comment.create', function(response){
        $.post('/sendemail.php');
    });
};

将其余代码放在sendemail.php

这假设您使用的是jQuery。

注意:这是一个非常糟糕的主意,考虑到在没有任何验证的情况下,用户可以向sendemail.php发送重复的请求,并将垃圾邮件从某人的邮箱中发送出去。考虑安全性,速率限制等。