2011-09-11 64 views
2

可能重複:
Seamless way to check if user likes page如何檢查用戶是否喜歡的網頁或不使用PHP/JavaScript的

我想很多人一直在問這個quesion,但我仍需要一個解決方案來檢查登錄的用戶是否喜歡這個頁面。我嘗試了很多解決方案,但沒有一個主題正在工作。

我已經用下面的代碼

function parsePageSignedRequest() { 
    if (isset($_REQUEST['signed_request'])) { 
    $encoded_sig = null; 
    $payload = null; 
    list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2); 
    $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); 
    $data = json_decode(base64_decode(strtr($payload, '-_', '+/'), true)); 
    return $data; 
} 
return false; 
} 
if($signed_request = parsePageSignedRequest()) { 
    if($signed_request->page->liked) { 
    echo "This content is for Fans only!"; 
    } else { 
    echo "Please click on the Like button to view this tab!"; 
    } 
} 

我無法讓用戶嘗試「喜歡」的反應。所以任何人都可以告訴我該怎麼做才能讓用戶「喜歡」迴應。

回答

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

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

    if(strtoupper($data['algorithm']) !== 'HMAC-SHA256') { 
    $error['signed_request'] = 'Unknown algorithm. Expected HMAC-SHA256'; 
    return null; 
    } 

    // check sig 
    $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true); 
    if($sig !== $expected_sig) { 
    $error['bad_signed_json'] = 'Bad Signed JSON signature!'; 
    return null; 
    } 

    return $data; 
} 

function base64_url_decode($input) { 
    return base64_decode(strtr($input, '-_', '+/')); 
} 

$signed_request_data = parse_signed_request($_REQUEST['signed_request'],$fb_app_secret); 

if($signed_request_data['page']['liked']) { 
    print "Content for Useres who have liked your page..."; 
} 
2

我想你必須使用FQL,具體查詢page_fan表。
請閱讀我在上述鏈接中提到的F​​B文檔。 進一步構建這樣的FQL查詢,你可以訪問這個linked answer
這就是我現在可以告訴,希望它有幫助!
編輯:
@ MuckyBuzzwoo的回答也將爲頁面標籤的工作中,signed_request喜歡$data['page']['liked']顯示,如果當前訪問用戶的標籤已喜歡的網頁或沒有。

+0

@ MuckyBuzzwoo的回答也將工作,** ** signed_request有** **喜歡現場'$數據[「頁」] [「喜歡」]'顯示,如果當前訪問用戶的標籤已經喜歡該頁面或沒有。 –

相關問題