2009-08-09 41 views
6

Sadece eğlence ve öğrenim için küçük bir Facebook uygulaması yazmak için çalışıyorum. Ne yazık ki, Facebook geliştirici belgeleri, wiki ve örnekleri arzulanan çok şey bırakıyor. Uygulamam bir iFrame uygulaması (PHP) ise, sayfa içinde FBML kullanabilir miyim veya XFBML'yi kullanmam gerekir mi? XFBML kullanmam gerekiyorsa, bakabileceğim bir yerde snippet'lerin bir havuzu var mı?FBF bir iFrame Facebook uygulamasında kullanılabilir mi?

Bir arkadaş seçim kutusu eklemek istiyorum. Örneğin, uygulamaya hoş geldiniz, bir nesne seçin, 20 arkadaşınıza gönderin.

Bir arkadaş seçicisinin Facebook uygulamaları için bir stok bileşeni olacağını düşünebilirsiniz, ancak görünüşe göre değil.

Kendi kimliğimi tanımlamak için FBQL ve CSS kullanabilirim, fakat standartlar ve tutarlılık hoş olmaz mı?

FBML etiketlerini, XFBML etiketlerini ve örneklerle nereye gidenleri kapsayan Facebook uygulama geliştiricilerinin öğreticisini takip etmesi kolay bir şekilde, yerden yukarı doğru mu?

cevap

8

Bir Facebook sorusuna yaptığım her cevapta, "Facebook belgelerinin berbat olduğunu, bu yüzden bir şey bulamıyorsanız kendinizi kötü hissetmeyin" diye düşünüyorum.

Yanıt evet, bir IFrame uygulamasında kesinlikle FBML kullanabilirsiniz. Ben rutin olarak yapıyorum. Facebook, IFrame uygulamaları ile XFBML ile FBML uygulamaları arasındaki çizgileri bulanıklaştırıyor, ki bu harika. Temel olarak, XFBML, Facebook Connect javascript kütüphaneleri aracılığıyla ayrıştırılması ve işlenmesi dışında sadece normal FBML'dir. Bu nedenle, bir FBML denetiminin gerçekleştirilmesinden önce biraz gecikme görüyorsunuz, ancak genellikle bu büyük bir sorun değil.

IFrame uygulamalarımdan birine doğrudan bir arkadaş seçicisi yükleme örneği vereceğim. Daha karmaşık FBML etiketlerinin birkaçını oluşturmanız gereken fb:serverfbml etiketleri ile çevrelenmiş olduğunu göreceksiniz. numaralı numaralı FBML öğelerinin, çevresinde bir fb: serverfbml etiketine gereksinim duymadığı XFBML wiki page'da listelenmiştir.

Neyse, bazı kod: Bunu izlemek zorunda böylece

<fb:serverfbml style="width: 650px;"> 
<script type="text/fbml"> 
    <fb:fbml> 
     <fb:request-form 
      action="http://my.app.com/invite/sent" 
      method="POST" 
      invite="true" 
      type="My App Name" 
      content="You should use My App Name. All the cool kids are doing it. 
       <fb:req-choice url='http://apps.facebook.com/my-app' 
       label='<?php 
        echo htmlspecialchars("That sounds sweet!",ENT_QUOTES); 
        ?>' 
       /> 
      " > 
      <fb:multi-friend-selector 
       showborder="false" 
       actiontext="Invite your friends to use My App Name." 
       exclude_ids="1234556,465555" 
       rows="3" 
      /> 
     </fb:request-form> 
    </fb:fbml> 
</script> 
</fb:serverfbml> 

Kaçan tırnak, tüm iç içe etiketleri ile biraz zor olur. Örneğimin bir PHP uygulamasından geldiğini görebiliyorsunuz ve sadece açıklama amacıyla (bu özel dizenin kaçmasına gerek yok) bir htmlspecialchars() çıkış çağrısını bıraktım.

Herhangi bir şekilde, IFrame uygulamanız için zaten yüklü olan Facebook Connect'iniz varsa, bu işlem biraz düzeltme yapılmalıdır. Henüz Facebook Connect'e sahip değilseniz, XFBML wiki page'daki Rendering XFBML yönergelerini izleyin.

+0

Zombat, bilgi için teşekkürler. Bununla birlikte, bu yine başka bir soruya yol açıyor. Şu anda PHP istemci kütüphanesini kullanıyorum ve $ facebook = yeni Facebook ($ appapikey, $ appsecret); $ user_id = $ facebook-> require_login(); Buradan, kullanıcı bilgilerini geri çekmek için FBQL'yi çalıştırıyorum. Bu çakışmalar FB.Init() çağrıları ile mi? –

+1

Hayır. Facebook PHP istemcisi tamamen sunucu tarafı olduğu için Javascript kitaplıklarından tamamen ayrı bir şeydir. PHP kütüphanesi ve Javascript kütüphaneleri aynı şeyleri yapmanıza izin verir, sadece farklı ortamlarda (yani sunucu tarafı ve istemci tarafı). – zombat

İlgili konular