首頁 >web前端 >js教程 >如何使用 JavaScript 可靠地確定 Facebook 使用者是否喜歡我的頁面?

如何使用 JavaScript 可靠地確定 Facebook 使用者是否喜歡我的頁面?

Susan Sarandon
Susan Sarandon原創
2024-11-25 09:47:07295瀏覽

How Can I Reliably Determine if a Facebook User Has Liked My Page Using JavaScript?

使用JavaScript API 決定Facebook 頁面親和性

在iFrame 應用程式的上下文中,驗證使用者是否「喜歡」某個頁面的任務可以遇到特定的Facebook 頁面。然而,在嘗試實現此功能時遇到不一致的情況並不少見。

考慮以下程式碼片段:

FB.api({
    method:     "pages.isFan",
    page_id:        my_page_id,
},  function(response) {
        console.log(response);
        if(response){
            alert('You Likey');
        } else {
            alert('You not Likey :(');
        }
    }
);

執行此程式碼時,它甚至會產生令人費解的「False」結果儘管相關用戶確實「喜歡」了相關頁面。這種差異背後的罪魁禍首在於需要尚未解決的擴展許可。

使用簽名請求的替代方法

為了規避此問題並可靠地確定根據用戶的「喜歡」狀態,可以採用利用簽名請求機制的替代方法。透過在Facebook 中啟用「OAuth 2.0 for Canvas」高級選項,您可以在每個選項卡應用程式請求中檢索簽名請求,其中包含有關用戶的重要信息,包括他們的「喜歡」狀態:

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!";
    }
  }

This解決方案提取簽署的請求,對其進行解碼,並檢查解析的JSON 物件的「喜歡」屬性,以準確確定用戶對Facebook 頁面的「喜歡」狀態。

以上是如何使用 JavaScript 可靠地確定 Facebook 使用者是否喜歡我的頁面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn