2013-05-16 58 views
0

我目前正在嘗試開發一個我只想讓粉絲訪問的Facebook應用程序。因此,要檢查用戶是否喜歡我聯繫到遊戲的粉絲頁面,我使用這個代碼:查看粉絲頁面喜歡訪問Facebook中的應用程序

<?php 
$our_page_id = 'page_id'; 
$user_is_fan = false; 
$likes = $facebook->api('/me/likes?fields=id'); 
foreach($likes['data'] as $page) { 
    if($page['id'] === $our_page_id) { 
     $user_is_fan = true; 
       break; 
    } 
} 

echo "likes:" . $likes; 
echo "fan:".$user_is_fan;?> 

這是我的,我通過文檔生成的類似按鈕:

<div id="fb-root"></div> 
    <script>(function(d, s, id) { 
     var js, fjs = d.getElementsByTagName(s)[0]; 
     if (d.getElementById(id)) return; 
     js = d.createElement(s); js.id = id; 
     js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=14XXXX"; 
     fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
    </script> 
</div> 
<div class="fb-like" data-href="http://www.facebook.com/pages/xx/xx?fref=ts" data-send="false" data-width="450" data-show-faces="true"></div> 

我目前收到有關無效OAuth令牌的錯誤消息,但是當我刪除檢查facebook的部分時喜歡,它可以正常工作。另外,我嘗試了FB.Event.subscribe('edge.create')函數來嘗試檢查類似按鈕被點擊時的事件,但沒有顯示警報。

此前,這個工作像一個魅力,但現在,無論我多少點擊像按鈕,$ user_is_fan返回false。我在這裏做錯了什麼?或者我錯誤地實施了這個?

有沒有一種不同的有效的方式來檢查喜歡在Facebook?請幫助。 注意:我正在使用Facebook PHP SDK。

+0

您是否檢查了這個? http://stackoverflow.com/questions/5093398/how-to-check-if-a-user-likes-my-facebook-page-or-url-using-facebooks-api – jabbink

+0

是的,我已經檢查過它並不適合我。 – user1597438

+1

用戶是否已連接到您的應用並已授予'user_likes'權限? – CBroe

回答

2

您可以使用fgl查詢來執行此操作。參見:http://developers.facebook.com/docs/reference/fql/page_fan/。不要忘記設置user_likes permissions。 您還需要一個有效的fanpageid爲您查詢,請參閱:Get Facebook fan page ID

在下面的示例代碼:如果用戶喜歡$response的頁面應該包含其他CREATED_TIME將$response是空的。

<?php 
error_reporting(E_ALL); 
ini_set('display_errors','on'); 
require 'facebook-php-sdk-master/src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => '***************', 
    'secret' => '******************************', 
)); 

$applicationurl = 'http://testdrive.nl/facebooklikes.php'; 

// Get User ID 
$user = $facebook->getUser(); 

if(empty($user)) 
{ 
    $params = array(
    'scope' => 'user_likes', 
    'redirect_uri' => $applicationurl 
    ); 

$loginUrl = $facebook->getLoginUrl($params); 
header('Location: ' . $loginUrl ."\r\n"); 
exit; 
} 

$response = $facebook->api(array(
    'method' => 'fql.query', 
    'query' =>'SELECT created_time FROM page_fan WHERE uid = '.$user.' AND page_id = 202225796470556' //minijoule 
)); 

var_dump($response); 

$response = $facebook->api(array(
    'method' => 'fql.query', 
    'query' =>'SELECT created_time FROM page_fan WHERE uid = '.$user.' AND page_id = 418784251474680' //webvrouw.nl 
)); 

var_dump($response); 
相關問題