Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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
Php Facebook应用程序检测类似页面-不工作正常_Php_Facebook_Facebook Like_Detect - Fatal编程技术网

Php Facebook应用程序检测类似页面-不工作正常

Php Facebook应用程序检测类似页面-不工作正常,php,facebook,facebook-like,detect,Php,Facebook,Facebook Like,Detect,我使用clasic php facebook代码进行相似检测。我把它放在2个fb应用程序上。其中一个正在工作,其中一个没有。在一个不工作的页面中,我无法接收带有0或1值的like键,该键将告诉我访问者是否喜欢该页面 <?php if(isset($_REQUEST['signed_request'])) { $app_secret = "..."; $data = parse_signed_request($_REQUEST["signed_request"], $app

我使用clasic php facebook代码进行相似检测。我把它放在2个fb应用程序上。其中一个正在工作,其中一个没有。在一个不工作的页面中,我无法接收带有0或1值的like键,该键将告诉我访问者是否喜欢该页面

<?php
if(isset($_REQUEST['signed_request'])) 
{
    $app_secret = "...";
    $data = parse_signed_request($_REQUEST["signed_request"], $app_secret);

    print "<pre>";
    print_r($data);
    print "</pre>";
} 

function parse_signed_request($signed_request, $secret) 
{
    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    $sig = base64_url_decode($encoded_sig);
    $data = json_decode(base64_url_decode($payload), true);

    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') 
    {
        error_log('Unknown algorithm. Expected HMAC-SHA256');
        return null;
    }
    $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
    if ($sig !== $expected_sig) 
    {
        error_log('Bad Signed JSON signature!');
        return null;
    }
    return $data;
}

function base64_url_decode($input) 
{
    return base64_decode(strtr($input, '-_', '+/'));
}
?>
页面数组也必须具有like键,但在本例中不存在like键

这两款应用在facebook开发者部分都有相同的设置,一页一页的比较超过10次


有什么问题吗?

新应用程序中不再发送like状态,2014年11月之后,like选通将不被允许


有关更多信息,请参阅此线程:

如果您创建的应用程序最近无法获取喜欢的属性,或者很久以前创建但从未使用过它,那么它可能不会收到它,因为该属性在API版本2.1或更高版本中已被弃用-此处有更多关于此更改的信息:

对于今天之后创建的页面选项卡应用程序,“已签名的请求”对象中将不再返回“liked”属性。从…起 2014年11月5日起,“喜欢的”财产将始终返回 无论此人是否喜欢该页面,“true”

Array
(
    [algorithm] => HMAC-SHA256
    [issued_at] => 111111
    [page] => Array
        (
            [id] => 111111
            [admin] => 1
        )

    [user] => Array
        (
            [country] => ro
            [locale] => en_GB
            [age] => Array
                (
                    [min] => 21
                )

        )

)