2012-02-16 33 views
-1

我正在創建一個Facebook粉絲門,當用戶喜歡我的頁面時,它會顯示一個表單,允許用戶參加比賽。如何讓用戶只輸入一次Facebook競賽一次

我該如何去檢查用戶是否已經進入競賽。

因此,當瀏覽器請求包含我的Facebook頁面的iframe時,我的php文件將首先檢查用戶是否已經進入競爭對手(基於用戶的Facebook標識),如果他們已經顯示某個圖像,顯示比賽的輸入表格。

編輯

,所以這是我的代碼目前

<?php 
require_once 'facebook-php-sdk/src/facebook.php'; 
$fbAppArray = array(
    'appId' => 'xxx', 
    'secert' => 'xxxxxxx', 
); 
$fbAppObj = new Facebook($fbAppArray); 
$signedRequest = $fbAppObj->getSignedRequest(); 
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; 
} 
?> 

然後我把這個

<?php 
if($signedRequest == parsePageSignedRequest()) 
{ 
    if($signedRequest->page->liked) 
    { 
     echo "you liked me"; 
    }else{ 
     echo "Please like the application so you will be able to see the contents..."; 
    } 
} 
?> 

這太檢查用戶是否喜歡的網頁或沒有,但它似乎沒有工作。 ($ signedRequest-> page-> liked)這似乎總是評估爲false即使用戶喜歡的頁面

任何想法爲什麼?

乾杯

是喜歡你的網頁在數據庫
+0

此刻剛離開電腦,將盡快將它放入 – molleman 2012-02-16 13:55:26

+0

我不確定你需要回答哪個問題?如何獲得獨特的條目?或如何檢查頁面喜歡的狀態? – DMCS 2012-02-22 17:33:27

回答

1

我希望你將表單提交的結果存儲在一個表中,你可以在那裏存儲一個userID列,其中包含Facebook的用戶ID,然後可以匹配它,你將「有」獲取用戶的基本信息。另一種選擇是讓用戶輸入電子郵件地址,但不保證。

1

最直接的方法,我看到的是簡單的存儲用戶,所以當用戶喜歡你的網頁,你可以檢查他是否已經進入了競爭。 Signed request應該爲您提供當前用戶的Facebook標識,該標識應該存儲。

+0

對不起,但'signed_request'不存儲該信息,除非該用戶已授權該應用程序。 – DMCS 2012-02-22 17:30:55