Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook PHP SDK捕获类事件_Facebook_Facebook Like - Fatal编程技术网

Facebook PHP SDK捕获类事件

Facebook PHP SDK捕获类事件,facebook,facebook-like,Facebook,Facebook Like,如果用户喜欢iframe页面标签,我需要使用顶部的官方Facebook“like”按钮记录到数据库中。我在stackoverflow进行了搜索,发现了一个javascript片段 FB.Event.subscribe('edge.create', function(response) { alert('You liked the URL: ' + response); } ); 但它不会为官方按钮触发(仅与添加到页面中的按钮相同)?在异步调用中,我在FB.ini

如果用户喜欢iframe页面标签,我需要使用顶部的官方Facebook“like”按钮记录到数据库中。我在stackoverflow进行了搜索,发现了一个javascript片段

FB.Event.subscribe('edge.create',
    function(response) {
        alert('You liked the URL: ' + response);
    }
);
但它不会为官方按钮触发(仅与添加到页面中的按钮相同)?在异步调用中,我在FB.init之后和FB.Canvas之前声明它。在PHP中有没有一种方法可以在刷新时捕捉到这一点?JS或PHP都可以(因为JS可以简单地ajax一个PHP文件)。签名的请求包含他们是否喜欢该页面,但我需要在页面发生(或刚刚发生)时捕获它。 非常感谢您的帮助:-)

请尝试:

window.fbAsyninit=函数(){ FB.Event.subscribe('edge.create',函数(targetUrl){ _gaq.push([''u trackSocial',facebook',like',targetUrl]); }); };


我认为您只需要在fbAsyninit中设置下标。

最终是用纯PHP的方式完成的

1:从facebook获取签名请求并提取喜欢的数据

2:创建一个变量$liked,并根据已签名的请求值设置为“是”或“否”

3:操纵会话-使用会话,因为当您“喜欢”时页面会刷新,但会话仍然存在(但请求值将发生更改)


谢谢科林,他试过了——等了24小时——但在分析报告中还是一无所获。我在谷歌和网络上读到的所有信息都表明,这只适用于iframe页面上的相似按钮,而不适用于页面选项卡上方的官方相似按钮?
if(isset($_SESSION['likestatus'])){
    if($_SESSION['likestatus'] == "no" && $liked == "yes"){
        // do mysql updatestuff cause has liked page since session started  
        $_SESSION['likestatus'] = $liked;
    }
    else{
        $_SESSION['likestatus'] = $liked;
    }    
}
else {
    $_SESSION['likestatus'] = $liked;    
}