2011-04-07 22 views
6

Gerçekten kafam karıştı.Facebook Like düğmesinin XFBML sürümü için bir uygulamaya ihtiyacım var mı?

Sitemdeki çok basit Facebook eklentilerini, özellikle temel "Beğen" düğmesini kullanıyorum.

Sınırlı sürümü bir iFrame ile nasıl kullanacağımı biliyorum. Ancak, şimdi XFBML yöntemini anlamaya çalışıyorum ve çevrimiçi belgeler, zaten bildiğiniz ve çalışma örneklerine gerçekten çok kısa bir şekilde ilişkin birçok varsayımlar yapıyor gibi görünüyor. Örneğin, size JavaScript Init'i nasıl arayacağınızı ve size fb: gibi bir HTML kodu satırı sağladığını gösterirler ... ama yüzleri gösterme/gizleme, varsayılan yazı tipini ayarlama vb. Herhangi bir örnek göremedim. iFrame kodundaki gibi.

Ondan bu yana öğeye özellik olarak eklemeniz gerektiğini düşündüm, ancak StackOverlfow sayesinde teşekkürler ve sadece çevrelerin içine götüren Facebook belgelerine teşekkürler. XFBML kodunu kullanırken

<fb:like href="http://mydomain.com" show_faces="true" action="recommend" colorscheme="light" width="400" height="35" /> 

Tamam, şimdi, bu yükseklik otomatik varsayıyorum içinde yapmış veya yapmamış olan bağlı/sözleşme genişletmek gerektiğini bu.

İlk önce yüksekliği "80" olarak ayarlamam mı, yoksa otomatik olarak mı yapmam gerektiğini bilmiyorum.

Ve Init komut dosyasında 'uygulama kimliğiniz' için ne kullanacağımı bilmiyorum. App yok ... sadece bir Facebook Şirket Sayfası ... o yüzden bir Web sitesinde bir Like butonu koyduğumda neden App Kimliği'ne ihtiyacım olacak?

<script> 
window.fbAsyncInit = function() { 
    FB.init({ 
    appId: 'your app id', 
    status: true, 
    cookie: true, 
    xfbml: true 
    }); 
}; 

Bu konularda herhangi bir aydınlanma takdir edilecektir.

Teşekkür ederiz!

cevap

16

http://developers.facebook.com/docs/guides/web/

... tüm saçımı çekerek sonra, kendi sorumu yanıtlayan "JavaScript SDK bir Uygulama Kimliğini almak için Facebook ile web sitenizi kayıt (veya APPID gerektirir AppId, siteniz için kullanıcı ile web siteniz arasında doğru güvenlik seviyesine sahip olmasını sağlayan benzersiz bir tanımlayıcıdır.Aşağıdaki örnek, uygulamanıza sahip olduğunuzda JavaScript SDK'sının nasıl yükleneceğini gösterir: "

http://developers.facebook.com/setup/

Bu sayfanın/formun başlığı: Bir Uygulama Oluştur. Hala neden daha jenerik terminoloji kullanmadıklarını anlamıyorum. "Bir uygulama oluşturmuyorum" ve web sitemi bir uygulama olarak görmüyorum.

+18

Evet, facebook’un dokümantasyonu düpedüz korkunç. – billmalarky

+2

'appId = 3990840334890' dışı bırakmak, sadece iyi çalışıyor gibi görünüyor –

+0

@PeterEhrlich Sadece bir appId sağladığınızda, istatistik/içgörüler eksik olacak sanırım. Benim için de işe yarayacak gibi görünüyor. Yorumlar eklentisi ile etkinlik ... – benzkji

1

Uygulamamız yok ama bu kodu like code generator'dan aldım ve yerel ortamımda (localhost: 8000 kullanan ancak yine de 136 beğeni var) çalışıyor gibi görünüyor. Düğmelere bastığımda, facebook giriş pop-up'ını beklendiği gibi alıyorum.

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

<fb:like href="url here (optional)" send="true" width="450" show_faces="true"></fb:like> 
0

...

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#" > 

... 

window.fbAsyncInit = function() { 
FB.init({ 
    // appId  : 'none', // App ID 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
}); 

FB.Event.subscribe('edge.create', function(href, widget) { 
      var ss=href; 
      if (ss.match(/myWebSite/i)) { 
        alert('You just liked me'); 
      } 
}); 
}; 

(function (d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "https://connect.facebook.net/en_GB/all.js#xfbml=1"; 
    //js.src = "https://connect.facebook.net/en_GB/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

... 

<fb:like ref="core" class="fb-like" data-href="http://www.mySite.com" 
data-send="false" data-layout="button_count" 
data-width="50" data-show-faces="false" data-colorscheme="dark"></fb:like> 

yukarıdaki eser, ama senin gibi ve ve Facebook (a Spash sayfasını #followers, #talking vb vererek) siteleri kayıtlı olan gerçek Beğeniler kadar böler nasıl not Beğendim URL'ler gelen bilmez . (site, en azından, artan bir sayaç alır). Hiç sevilmenin amacını yener. Yanılıyor olabilirim, ama sanırım bunun ikincisiyle ilgili mesajlar bile göndermiyor. Ben Facebook için telefon numaraları üzerinden çalıştırıyorum çünkü :)

Sonra beni en azından, daha büyük bir sorun olduğunu için

bu, çok kötü. Sizi sevdiği için birisini ödüllendirecekseniz, gerçekten emin olduklarından emin olamazsınız, çünkü bu js'dir. Eğer js bir ödül sayfasına yönlendirirseniz, bir kullanıcı sadece url'yi yapıştırır. Bir rnd oturum varsayı ayarlayabilir, js'ye aktarabilir ve js'yi bir php sayfasına yönlendirebilirsiniz, ancak bir kullanıcı bunu anlayabilir.

Sen

require 'face_sdk/face/src/facebook.php'; 
$facebook = new Facebook(array(
    'appId' => '', 
    'secret' => '', 
)); 
$user = $facebook->getUser(); 

böylece doğrudan php yolu var gibi görünüyor ... görünmektedir (veya APPID yorumlandı) olamaz. Eğer iframed Like düğmesi url'sini php'ye geçmek, basit_html_dom.php ile ayrıştırmak ve iki ana div'dan hangisinin 'hidden_elem' sınıfına sahip olduğunu bulmaktaydım. Ama sonuçta buna değmez çünkü Facebook seni ikinci sınıf bir vatandaş gibi tedavi edecek.