Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Menentukan dengan Boleh Dipercayai jika Pengguna Facebook Menyukai Halaman Saya Menggunakan JavaScript?

Bagaimanakah Saya Boleh Menentukan dengan Boleh Dipercayai jika Pengguna Facebook Menyukai Halaman Saya Menggunakan JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-25 09:47:07279semak imbas

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

Menentukan Perkaitan Halaman Facebook dengan API JavaScript

Dalam konteks aplikasi iFrame, tugas untuk mengesahkan sama ada pengguna telah "menyukai" a halaman Facebook tertentu boleh ditemui. Walau bagaimanapun, menghadapi ketidakkonsistenan semasa cuba melaksanakan fungsi ini adalah perkara biasa.

Pertimbangkan coretan kod berikut:

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 :(');
        }
    }
);

Setelah melaksanakan kod ini, ia menghasilkan hasil yang membingungkan "Salah" walaupun walaupun pengguna yang berkenaan memang "menyukai" halaman yang berkaitan. Punca di sebalik percanggahan ini terletak pada keperluan untuk kebenaran lanjutan yang belum ditangani.

Pendekatan Alternatif Menggunakan Permintaan Bertandatangan

Untuk memintas isu ini dan memastikan dengan pasti status "suka" pengguna, pendekatan alternatif menggunakan mekanisme permintaan yang ditandatangani boleh digunakan. Dengan mendayakan pilihan lanjutan "OAuth 2.0 for Canvas" dalam Facebook, anda boleh mendapatkan semula permintaan yang ditandatangani dengan setiap permintaan apl tab yang mengandungi maklumat penting tentang pengguna, termasuk status "suka" mereka:

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

Ini penyelesaian mengekstrak permintaan yang ditandatangani, menyahkodnya dan memeriksa sifat "suka" objek JSON yang dihuraikan untuk menentukan dengan tepat status "suka" pengguna untuk Facebook anda halaman.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan dengan Boleh Dipercayai jika Pengguna Facebook Menyukai Halaman Saya Menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn