2011-06-03 106 views

回答

0

终于找到了解决办法。在携带的Facebook应用程序的页面,添加:

<?php 
$signed_request = $_REQUEST["signed_request"]; 

list($encoded_sig, $payload) = explode('.', $signed_request, 2); 
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 
$liked = isset($data["page"]["liked"]) ? $data["page"]["liked"] : ''; 
?> 

$喜欢=如果登录用户喜欢的页面,否则为false真。

0

这可能有点棘手,但前段时间我遇到了一个适用于我的解决方案。您可能想要使用JS调用(您可以在Flash中使用ExternalInterface调用/获取数据)。在您的JS你就会有这样的事情:

//me() gets replaced by the current viewer's uid 
var fan_qr = 'SELECT source_id FROM connection WHERE target_id = YOUR_APP_ID AND source_id = me()'; 

var fan_query = FB.Data.query(fan_qr); 
fan_query.wait(function(rows) { 

    if(rows[0] && rows[0]['source_id'] != "") { 
     //they're a fan 
    } else { 
     //they're not a fan 
    } 
} 

我忘了,我发现这个原本,而是道具那家伙的计算出来。

由于您只能获取有关当前用户的数据,因此您不需要访问令牌。我知道,FB刚刚调升对FQL安全要求的,所以如果你最终需要一个访问令牌,你这是怎么得到它:

​​

然后,我见过的人直接将它结束查询是这样的:

var fan_qr = 'SELECT source_id FROM connection WHERE target_id = YOUR_APP_ID AND source_id = me()&access_token=' + window.accessToken; 

如果不工作,你可以通过FB.api()执行查询,并简单地传递作为的access_token一个额外的参数。

无论如何,希望这有助于。祝你好运!

相关问题