Saya pikir saya akan gila. Saya tidak bisa membuatnya bekerja.
Saya hanya ingin memeriksa apakah pengguna menyukai halaman saya dengan javascript di iFrame
aplikasi.
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 :(');
}
}
);
Ini mengembalikan: Salah
Tapi saya penggemar halaman saya jadi bukankah seharusnya itu kembali benar ?!
Jawaban:
Aku juga merobek rambutku yang ini. Kode Anda hanya berfungsi jika pengguna telah memberikan izin yang diperpanjang untuk hal yang tidak ideal.
Inilah pendekatan lain.
Singkatnya, jika Anda mengaktifkan opsi
OAuth 2.0
untuk Canvas Advanced, Facebook akan mengirimkan$_REQUEST['signed_request']
semua halaman yang diminta dalam aplikasi tab Anda. Jika Anda mengurai yang signed_request itu Anda bisa mendapatkan beberapa info tentang pengguna termasuk apakah mereka menyukai halaman itu atau tidak.sumber
signed_request
. Ini adalah pendekatan yang berbahaya. Anda harus memeriksanya dengan rahasia aplikasi Anda. Periksa jawaban ini untuk informasi lebih lanjutAnda dapat menggunakan (PHP)
Itu akan mengembalikan salah satu dari tiga:
Saya kira satu-satunya cara yang tidak menggunakan token untuk mencapai ini adalah dengan signed_request Jason Siffring yang baru saja diposting. Pembantu saya menggunakan PHP SDK:
sumber
Anda dapat melakukannya dalam JavaScript seperti ini (Membangun dari tanggapan @ dwarfy untuk pertanyaan serupa ):
Di mana file channel.html di server Anda hanya berisi baris:
Ada sedikit duplikasi kode di sana, tetapi Anda mengerti. Ini akan memunculkan dialog login pertama kali pengguna mengunjungi halaman (yang sebenarnya tidak ideal, tetapi berfungsi). Pada kunjungan berikutnya tidak ada yang harus muncul.
sumber
Meskipun postingan ini sudah cukup lama ada di sini, solusinya bukanlah JS murni. Meskipun Jason mencatat bahwa meminta izin tidak ideal, saya menganggapnya hal yang baik karena pengguna dapat menolaknya secara eksplisit. Saya tetap memposting kode ini, meskipun (hampir) hal yang sama juga dapat dilihat di posting lain oleh ifaour . Anggap ini hanya versi JS tanpa terlalu banyak perhatian pada detail.
Kode dasarnya cukup sederhana:
Alternatifnya, ganti
me
dengan UserID yang tepat milik orang lain (Anda mungkin perlu mengubah izin di bawah untuk melakukan ini, sepertifriends_likes
) Seperti disebutkan, Anda memerlukan lebih dari izin dasar:sumber
saya menggunakan jquery untuk mengirim data ketika pengguna menekan tombol suka.
Catatan: Anda dapat menggunakan beberapa teks masukan tersembunyi untuk mendapatkan id dari tombol Anda. Dalam kasus saya, saya mengambilnya dari url itu sendiri di "var fbl_id = h_fbl [4];" karena ada contoh idnya: url: http://mywebsite.com/post/22/some-tittle
jadi saya mengurai url untuk mendapatkan id dan kemudian memasukkannya ke databse saya di file like.php. dengan cara ini Anda tidak perlu meminta izin untuk mengetahui jika ada orang yang menekan tombol suka, tetapi jika Anda ingin tahu siapa yang menekannya, izin diperlukan.
sumber