2014-09-12 80 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日起,無論該人是否喜歡該網頁,'喜歡'的財產總是會返回 '真'。