2014-09-12 115 views
0

我使用clasic php facebook代码进行“like”检测。我把它放在2 fb的应用程序上。对其中之一正在努力其中之一不是。在不工作我不能接受一个“喜欢”与值0或1键,会告诉我,如果访问者喜欢的网页或不Facebook应用程序检测页面像 - 不能正常工作

<?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, '-_', '+/')); 
} 
?> 

在不工作的$的一个数组是这样的

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

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

     ) 

) 

“page”数组也必须有“like”键,但在这种情况下不存在。

这两个应用程序在facebook开发人员部分中都有相同的设置,每次比较页面的次数超过10次。

可能是什么问题?

回答

0

如果您创建的应用程序,它不能够最近获得liked财产或者它创造了很久以前,但从未使用过它,它可能不接受它,因为这个属性在API版本2.1或更高弃用 - 有更多的这种变化在这里:

https://developers.facebook.com/docs/apps/changelog#v2_1

“喜欢”属性将不再在今天之后创建的Page Tab应用程序的'signed_request'对象中返回。从 2014年11月5日起,无论该人是否喜欢该网页,'喜欢'的财产总是会返回 '真'。

相关问题