你想要做的是完全可能的,儘管我通常在服務器端進行計算。您可以使用下面的基本概念通過Javascript SDK來完成。看看這個鏈接:http://fbmhell.com/2011/06/facebook-like-gating-in-iframe-tabs/
的基本概況是這樣的:
- 您創建一個頁面
- 您爲您的促銷標籤創建一個應用程序
- 您添加應用程序選項卡,您
頁
當用戶在您的頁面上點擊您的應用程序選項卡時,Facebook會向您返回已簽名的請求。
您可以分析出,使用這樣的函數簽名的請求:
function grokSignedRequest() {
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;
}
正如該文章中提到的,如果你做的print_r()上簽名的請求,它已經通過所提供的功能,運行後,你會看到這樣的事情:
stdClass Object
(
[algorithm] => HMAC-SHA256
[issued_at] => 1307627872
[page] => stdClass Object
(
[id] => 116633947708
[liked] => 1
[admin] => 1
)
[user] => stdClass Object
(
[country] => us
[locale] => en_US
[age] => stdClass Object
(
[min] => 21
)
)
)
從那裏,你可以訪問喜歡的參數,並根據用戶是否已經喜歡的頁面顯示內容。
// call the function to parse the signed request
$sr_data = grokSignedRequest();
// check like status
if ($sr_data->page->liked==1) {
echo 'you are a fan';
} else {
echo 'you are not a fan.';
}
// check admin status
if ($sr_data->page->admin==1) {
echo '<li>Dude, you are an ADMIN! BADASS!';
}
這似乎是一個相當簡單的任務。從我讀到的關於API的內容來看,你需要一個應用ID來使用它,這是正確的嗎?我無法理解應用程序和頁面之間的區別。對於我想要做的簡單任務,我是否真的需要設置「應用程序」?如果是這樣,我能夠將我現有的頁面鏈接到這個應用程序或其他東西?我看不到你是如何做到這一點的,顯然我不希望人們「喜歡」我創建的一些無所事事的應用程序,也不想去我的頁面本身。 –
你不需要一個應用程序ID就可以擁有一個像按鈕一樣。您確實需要一個應用程序ID才能在臉譜圖上進行查詢,並使用其應用程序界面。頁面是用戶可以連接的Facebook上的實體。應用程序是Facebook上的一個實體,用戶可以與之連接,並可以連接回他們,並代表他們採取行動;比如發佈照片和更新等。如果您想以編程方式獎勵您的用戶,而不是僅僅在他們喜歡它之後在頁面上發佈您的獎勵,那麼您將需要一個應用程序 – Abby
,因此可以將「應用程序」鏈接到我的頁?我不能看到除了使用API以外的任何其他方式。 –