2009-08-09 28 views
6

Tôi đang viết một ứng dụng Facebook nhỏ chỉ để vui chơi và học tập. Thật không may, tài liệu nhà phát triển Facebook, wiki và các mẫu để lại nhiều điều mong muốn.FBML có thể được sử dụng trong ứng dụng Facebook iFrame không?

Nếu ứng dụng của tôi là ứng dụng iFrame (PHP), tôi có thể sử dụng FBML trong trang hoặc tôi có cần sử dụng XFBML không? Nếu tôi cần sử dụng XFBML, có một kho lưu trữ các đoạn trích nào đó mà tôi có thể xem qua không?

Tôi đang tìm cách thêm một hộp chọn bạn bè. Ví dụ, chào mừng bạn đến ứng dụng, chọn một đối tượng, gửi cho 20 người bạn.

Bạn sẽ nghĩ bộ chọn bạn bè sẽ là thành phần cổ phiếu cho các ứng dụng Facebook, nhưng dường như không.

Tôi có thể sử dụng FBQL và CSS để xác định riêng của mình, nhưng các tiêu chuẩn và tính nhất quán sẽ không tốt đẹp?

Có hướng dẫn phát triển ứng dụng Facebook dễ hiểu, dựa trên nền tảng, dễ theo dõi bao gồm các thẻ FBML, các thẻ XFBML và những gì diễn ra ở đâu với các ví dụ không?

Trả lời

8

Tôi nghĩ rằng trong mỗi câu trả lời tôi thực hiện cho một câu hỏi trên Facebook, tôi đề cập đến rất nhiều rằng "tài liệu Facebook rất tệ, vì vậy đừng cảm thấy xấu nếu bạn không thể tìm thấy thứ gì đó".

Câu trả lời là có, bạn chắc chắn có thể sử dụng FBML trong ứng dụng IFrame. Tôi làm điều đó thường xuyên. Facebook đang làm mờ ranh giới giữa các ứng dụng IFrame và các ứng dụng FBML với XFBML, điều này thật tuyệt vời. Về cơ bản, XFBML chỉ là FBML thông thường, ngoại trừ việc nó được phân tích cú pháp và hiển thị thông qua thư viện javascript của Facebook Connect. Bởi vì điều này, bạn thấy một chút chậm trễ trước khi một điều khiển FBML được hiển thị, nhưng nói chung đây không phải là một vấn đề lớn.

Tôi sẽ cung cấp cho bạn ví dụ về cách tải công cụ chọn bạn bè trực tiếp từ một trong các ứng dụng IFrame của tôi. Bạn sẽ thấy rằng nó được bao quanh bởi các thẻ fb:serverfbml, mà bạn cần để hiển thị một số thẻ FBML phức tạp hơn. Các mục FBML mà không cần một thẻ fb: serverfbml xung quanh chúng được liệt kê trên XFBML wiki page.

Dù sao, một số mã:

<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> 

dấu ngoặc kép Thoát được một chút khó khăn với tất cả các thẻ lồng nhau, vì vậy bạn phải xem đó. Bạn có thể thấy ví dụ của tôi là từ một ứng dụng PHP, và tôi để lại một cuộc gọi thoát htmlspecialchars() trong đó chỉ nhằm mục đích minh họa (mặc dù chuỗi cụ thể đó không cần phải thoát).

Nhưng dù sao, nếu bạn đã cài đặt Facebook Connect cho ứng dụng IFrame của mình, thì điều này sẽ hoạt động với một chút tinh chỉnh. Nếu bạn chưa có Facebook Connect, hãy làm theo hướng dẫn Rendering XFBML trên XFBML wiki page.

+0

Zombat, cảm ơn thông tin. Tuy nhiên, điều này lại mang đến một câu hỏi khác. Tôi hiện đang sử dụng thư viện máy khách PHP và có mã truyền thống $ facebook = new Facebook ($ appapikey, $ appsecret); $ user_id = $ facebook-> require_login(); Từ đó tôi đang chạy FBQL để lấy lại thông tin người dùng. Làm những xung đột này với các cuộc gọi FB.Init()? –

+1

Không. Khách hàng Facebook PHP là một cái gì đó hoàn toàn tách biệt khỏi các thư viện Javascript, vì nó hoàn toàn là phía máy chủ. Thư viện PHP và các thư viện Javascript cho phép bạn làm những việc tương tự, chỉ trong các môi trường khác nhau (ví dụ phía máy chủ và phía máy khách). – zombat

Các vấn đề liên quan