Giáo trình Làm chủ việc phát triển ứng dụng facebook bằng PHP

pdf 80 trang vanle 4990
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Làm chủ việc phát triển ứng dụng facebook bằng PHP", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_lam_chu_viec_phat_trien_ung_dung_facebook_bang_ph.pdf

Nội dung text: Giáo trình Làm chủ việc phát triển ứng dụng facebook bằng PHP

  1. GIÁO TRÌNH LÀM CHỦ VIỆC PHÁT TRIỂN ỨNG DỤNG FACEBOOK BẰNG PHP
  2. Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphere Application Server và DB2, Phần 1: Thiết lập các thành phần Đề phụ Jake Miles, Tác giả tự do, 软通动力信息技术有限公司 Tóm tắt: Phát triển một ứng dụng Facebook sử dụng cả ngôn ngữ lập trình PHP và Java™. Hướng dẫn này sẽ mang lại cho bạn một cái nhìn đầu tiên về Facebook và sau đó từng bước dẫn bạn qua quá trình cài đặt các thành phần cần thiết để tạo ra một ứng dụng Facebook. Tiếp theo, bạn sẽ đi một vòng khảo sát Facebook về cách làm thế nào để tích hợp các ứng dụng của bạn vào trang web. Cuối cùng, bạn sẽ bắt đầu với một ứng dụng cơ bản nhất. Trong phần 2 và 3 của loạt hướng dẫn này, bạn sẽ tìm hiểu làm thế nào để phát triển các ứng dụng mà bạn đã tạo ra trong Phần 1. Trước khi bạn bắt đầu Hướng dẫn này dành cho các nhà phát triển ít nhất đã có một số kinh nghiệm phát triển trên Web với PHP, ngôn ngữ Java, Javascript, HTML/CSS và một cơ sở dữ liệu quan hệ, những người muốn bước vào thế giới mới mẻ về phát triển ứng dụng Facebook. Bạn sẽ tìm hiểu về chính Facebook, các điểm tích hợp khác nhau mà Facebook cung cấp cho một ứng dụng, làm thế nào để cho Facebook và ứng dụng của bạn giao tiếp với nhau và làm thế nào để phát triển hành vi tương tác và hữu ích, sử dụng API của Facebook. Về hướng dẫn này
  3. Trong hướng dẫn này, bạn sẽ bắt đầu xây dựng một ứng dụng Facebook, giả định là được một công ty môi giới chứng khoán đang hoạt động viết ra, cho phép người sử dụng quản lý danh mục đầu tư của họ từ bên trong Facebook. Để làm cho ứng dụng có tính xã hội thật sự, không chỉ là một công cụ nhúng trong Facebook, bạn cũng sẽ đưa ra các tùy chọn để xử lý danh mục đầu tư chứng khoán của người sử dụng giống như một trò chơi cạnh tranh với những người dùng khác. Bạn chưa có mã ? Tải về phiên bản dùng thử miễn phí về các sản phẩm được sử dụng trong hướng dẫn này: • Nhà phát triển ứng dụng Rational (Rational Application Developer). • Máy chủ ứng dụng WebSphere (WebSphere Application Server). • DB2 Express-C 9.5. • Zend Core cho IBM (Zend Core For IBM). Để có được một kịch bản kỹ thuật gần thực tế hơn, bạn sẽ giả thiết rằng một phần của ứng dụng đã được viết bằng ngôn ngữ Java và bạn đang bổ sung thêm ứng dụng Facebook và đang viết nó trong PHP và Java. Bạn sẽ triển khai thực hiện một số các ứng dụng trong Java, sử dụng môi trường viết mã Java của Nhà phát triển ứng dụng Rational® IBM, sử dụng WebSphere® làm máy chủ ứng dụng J2EE của bạn và sử dụng Thư viện khách Java của Facebook để giao tiếp giữa WebSphere và Facebook. Bạn cũng sẽ triển khai thực hiện một số ứng dụng trong PHP bằng cách sử dụng máy Zend Core và bản cài đặt Apache 2 kèm theo của nó để cung cấp các trang web và thư viện khách PHP của Facebook để giao tiếp với Facebook. Điều này sẽ cung cấp cho bạn các kinh nghiệm thực hành với cả Java và cả PHP, để cho bạn có
  4. thể lựa chọn giữa chúng tốt hơn khi các yêu cầu của doanh nghiệp của bạn thay đổi. Về đầu trang Các yêu cầu hệ thống Để hoàn thành các bước trong hướng dẫn này, bạn cần các phần mềm sau đây. Nếu bạn chưa cài đặt sản phẩm nào hoặc không có bản phát hành mới nhất, bạn có thể tải về các phiên bản dùng thử miễn phí: • Tải về một phiên bản dùng thử miễn phí của Nhà phát triển ứng dụng Rational. Bạn sẽ sử dụng Nhà phát triển ứng dụng Rational như là một IDE dựa trên Eclipse có đầy đủ đặc tính để phát triển ứng dụng Web Java của bạn. • Tải về một phiên bản dùng thử miễn phí của Máy chủ ứng dụng WebSphere V6.1 của IBM. • Tải về bản Zend Core cho IBM miễn phí (bao gồm IBM DB2® Express-C).
  5. Giới thiệu Facebook Trong phần này, bạn sẽ có một cái nhìn đầu tiên về Facebook trước khi bạn cài đặt các thành phần và tìm hiểu việc phát triển ứng dụng Facebook. Vậy Facebook là gì? Cho đến gần đây, những người sử dụng vẫn khá cô lập trên Web. Bạn có thể tương tác với các máy chủ hoạt động trên toàn cầu và tìm thấy một lượng thông tin khổng lồ, nhưng bạn đã không tương tác trực tuyến nhiều lắm với những người khác đang ở trên mạng. Các trang web mạng xã hội như Facebook người đi tiên phong được công chúng yêu thích hiện nay đã thay đổi điều đó, cho phép những người sử dụng tạo các khái lược trực tuyến cho mình và dễ dàng tạo lại mạng lưới các bạn bè trực tuyến hiện có của họ. Điều này tạo ra một không gian hoàn toàn mới trong đó mọi người có thể tương tác với nhau. Cho phép thực hiện các tương tác này chính là các ứng dụng xã hội; các ứng dụng được nhúng trong các địa chỉ web mạng xã hội, mà mỗi ứng dụng cung cấp một cách riêng của mình để tương tác với các bạn bè của chúng trên mạng. Bởi vì những người sử dụng đang dành càng nhiều thời gian hơn trên các trang web xã hội như Facebook, các địa chỉ web này có tiềm năng để trở thành một hệ điều hành của chính chúng. Về đầu trang Hai khuôn mặt của facebook Facebook là hai trong một: một mạng lưới bạn bè và một nền tảng cho các thành phần để tương tác với mạng lưới này, được gọi là các ứng dụng. Hầu như tất cả chức năng của Facebook xây dựng từ thiết kế thống nhất, đơn giản này - hầu hết các chức năng mặc định của Facebook, như khả năng quản lý ảnh và các nhóm của
  6. bạn, là các ứng dụng Facebook. Các API khác nhau của Facebook cũng trưng ra nhiều dữ liệu và chức năng ứng dụng cơ bản, ví dụ như một danh sách bạn bè và các bức ảnh của người sử dụng và vì thế cung cấp rất nhiều khả năng truy nhập và hỗ trợ phong phú để phát triển các ứng dụng của riêng bạn. Khi bạn lần đầu tiên đăng nhập vào tài khoản Facebook, bạn nhìn thấy trang chủ của mình, như được hiển thị trong Hình 1. Hình 1. Trang chủ Facebook của bạn Cột bên trái nhất chứa một hộp tìm kiếm, các liên kết dẫn hướng tới các ứng dụng và một quảng cáo. Cùng với thanh dẫn hướng đầu trang, phần này là khung của tất cả các trang mà bạn nhìn thấy trong Facebook. Bản thân trang chủ là nội dung kề bên cột dẫn hướng và nó được chia làm hai cột. Cột bên trái của trang chủ chứa Nguồn cung cấp tin tức (News Feed) của bạn, đó
  7. là một blog các mục, mỗi mục chỉ có một dòng, thông báo nhiều hoạt động của bạn bè của bạn trong các ứng dụng của họ. Về đầu trang Khái lược người sử dụng Trang chủ là những gì một người dùng cá nhân nhìn thấy về mạng của họ. Khái lược người sử dụng, di chuyển đến bằng cách nhấn vào liên kết Profile trong thanh dẫn hướng đầu trang, là trang hướng tới công chúng của người sử dụng (xem Hình 2). Hình 2. Trang khái lược người sử dụng
  8. Trang khái lược người sử dụng cũng được chia thành hai cột (nằm bên phải của cột dẫn hướng của Facebook), mà chúng tôi sẽ chỉ gọi là cột "hẹp" và cột "rộng". Cả hai cột có chứa các ứng dụng do người sử dụng cài đặt và do Facebook cài đặt. Ngoài ra, các nhà phát triển ứng dụng cần quan tâm đến danh sách các Hành động khái lược xuất hiện ngay bên dưới ảnh của khái lược, được các ứng dụng đặt ở đó. Đó là một tập hợp các biểu tượng của ứng dụng đã cài đặt xuất hiện ngay bên dưới, mỗi biểu tượng sẽ cuộn trang khái lược tới hộp của ứng dụng tương ứng và một ứng dụng Nguồn cấp tin mini (Mini-Feed). Nguồn cấp tin mini sẽ hiển thị một tập nhiều hơn các biểu tượng so với số được hiển thị trong Nguồn cung cấp tin tức (News Feed). Bây giờ bạn đã tìm hiểu các khía cạnh chính của Facebook mà bạn cần biết, đây là lúc cài đặt tất cả các công cụ.
  9. Cài đặt các thành phần Mục tiêu của bạn là mô hình hóa một tình huống gần như thực tế, trong đó có một ứng dụng doanh nghiệp Java đang hoạt động, muốn thêm một ứng dụng Facebook được thực hiện bằng PHP. Để làm như vậy, hãy thiết lập một số thành phần mà bạn cần phải có để phục vụ một nỗ lực như vậy trong thế giới thực, đó là Nhà phát triển ứng dụng Rational, Máy chủ ứng dụng WebSphere, Zend Core (trong đó bao gồm cả bản Apache kèm theo) và DB2. Nhà phát triển ứng dụng Rational, Máy chủ ứng dụng WebSphere, Zend Core và DB2 Nhà phát triển Ứng dụng Rational là môi trường phát triển Java hiện đại cho các IDE Eclipse, mà bạn sẽ sử dụng cùng với Máy chủ ứng dụng WebSphere để làm những ứng dụng Java. Máy chủ ứng dụng WebSphere là máy chủ ứng dụng J2EE của IBM cho phép bạn tạo ra các ứng dụng dựa trên Java và JSP dễ dàng bảo trì, an toàn và mạnh mẽ. Zend Core là bộ máy PHP tiêu chuẩn trên thế giới, bao gồm một máy chủ Web Apache 2 sẵn sàng chạy sản xuất thực sự. DB2 là một cơ sở dữ liệu SQL có sức mạnh sản xuất thực sự của IBM và với ấn bản DB2 Express-C, nó hoàn toàn miễn phí. Các công cụ này cùng nhau tạo thành một nền tảng vững chắc để phát triển các ứng dụng doanh nghiệp của bạn trên đó. Trong hướng dẫn này, bạn sẽ cài đặt các thành phần trên nền Windows, nhưng chúng cũng có sẵn cho Linux®. Về đầu trang Trang bị Nhà phát triển ứng dụng Rational và Máy chủ ứng dụng WebSphere để phát triển Java
  10. Để bắt đầu, hãy cài đặt Nhà phát triển ứng dụng Rational và Máy chủ ứng dụng WebSphere để cho phép phát triển ở phía Java. Trước tiên, tải về Nhà phát triển ứng dụng Rational bằng cách sử dụng trình quản lý cài đặt của IBM (xem Tài nguyên). Việc tải về và cài đặt rất đơn giản, nhưng sẽ mất một thời gian, tùy thuộc vào tốc độ kết nối Internet của bạn. Với hướng dẫn này, khái lược (profile) của máy chủ được đặt tên là JakeAppServer. Khởi động máy chủ với khái lược này bằng cách dẫn hướng theo IBM WebSphere > Application Server 6.1 > Profiles > JakeAppServer. Một cửa sổ lệnh mở ra và hiển thị các chi tiết khởi động và sẽ đóng lại khi quá trình khởi động kết thúc. Bạn có thể kiểm tra xem máy chủ có đang chạy hay không bằng cách mở bàn điều khiển quản trị (trong một cửa sổ trình duyệt). Hình 3. Bàn điều khiển quản trị
  11. Bây giờ bạn đã thiết lập Máy chủ ứng dụng WebSphere, hãy chuyển sang phía PHP. Về đầu trang Thiết lập Zend Core cho IBM để phát triển PHP và DB2 Như vậy là bây giờ bạn đã sẵn sàng để thiết lập Zend Core để đưa PHP vào trong hỗn hợp này. Tải về Zend Core cho IBM (xem Tài nguyên). Bạn sẽ sử dụng phiên bản của Zend Core cho IBM đi kèm theo với DB2 Express-C cho dễ thiết lập (xem Hình 4). 1. Nếu bạn chưa có một tài khoản Zend, bạn sẽ cần phải tạo một tài khoản trước khi tiếp tục công việc tải xuống. Hình 4. Lựa chọn đúng Zend Core để cài đặt 2. Khi Trình thủ thuật InstallShield mở ra, chọn nút tròn IBM DB2 Express-C.
  12. 3. Để đơn giản, sử dụng máy chủ Web Apache 2 nằm trong cùng gói với Zend Core. Hãy chắc chắn chọn cài đặt Apache 2.2.2 kèm theo (Install bundled Apache 2.2.2). 4. Việc cài đặt Zend Core cho IBM cũng đồng thời cài đặt DB2. Bạn sẽ nhận được một cảnh báo vào lúc ấy để nhắc bạn không khởi động lại máy tính của bạn ở cuối quá trình cài đặt DB2 Express-C (xem Hình 5). Hình 5. Cảnh báo cài đặt Zend Core có liên quan đến DB2 và việc khởi động lại máy tính 5. Một điểm mập mờ khi cài đặt: khi tạo một mật khẩu cho tài khoản người dùng tại chỗ, trình cài đặt chỉ chấp nhận một mật khẩu có chứa cả chữ cái và cả chữ số (password123), nhưng không nêu rõ yêu cầu này (xem Hình 6). Hình 6. Thiết lập tài khoản người dùng DB2 tại chỗ
  13. Bạn cũng có thể chỉ rõ không khởi động tự động cá thể DB2 lúc khởi động hệ thống, để cho bạn có nhiều kiểm soát hơn, nhưng đây chỉ là vấn đề sở thích. 6. Cho phép quá trình cài đặt tạo ra khái lược Các bước đầu tiên (First Steps) để tránh các cảnh báo về Javascript trong trình duyệt khi xem các trang First Steps của DB2 bằng cách nhấn chuột vào Create profile (Hình 7).
  14. Hình 7. Tạo khái lược của trình duyệt First Steps của DB2 Cuối cùng, bạn sẽ quay lại trình cài đặt Zend Core cho IBM (bị tạm dừng để cài đặt DB2) và nên khởi động lại máy tính của bạn trước khi tiếp tục Bây giờ bạn có DB2, Zend Core với máy chủ Web Apache kèm theo của nó, Nhà phát triển ứng dụng Rational và WebSphere đã sẵn sàng để chạy. Đây là lúc để khám phá Facebook về mặt thiết kế một ứng dụng.
  15. Thiết kế một ứng dụng Facebook Lý tưởng nhất, bạn muốn thiết kế một ứng dụng lây lan giống như virut - một ứng dụng mà những người sử dụng thấy là mang lại lợi ích đáng kinh ngạc hoặc rất nhiều vui thích khi sử dụng, hoặc cả hai, và làm cho người sử dụng và bạn bè của họ tham gia các tương tác, làm nó lan truyền không ai nhận biết qua khắp mạng Facebook. Bạn không thể đảm bảo ứng dụng là trúng đích, vì điều này phụ thuộc vào ý tưởng cốt lõi của ứng dụng, nhưng bạn có thể đảm bảo rằng nếu bạn nhắm trúng một ý tưởng như thế, ứng dụng của bạn được tích hợp vào trong nền tảng Facebook đủ tốt để nó tự tăng tiến thông qua tiếp thị kiểu lây lan hay truyền miệng. Vì vậy, trong lúc xem xét các mảnh khác nhau của Facebook và những gì mà các nền tảng này cho phép bạn làm, bạn hãy nhìn qua lăng kính như thế này: làm thế nào để tạo một ứng dụng để thúc đẩy nhiều tương tác của người sử dụng và sử dụng các điểm tích hợp của Facebook để mở rộng cơ sở người dùng của bạn và khuyến khích những người sử dụng tương tác với ứng dụng của bạn bất cứ khi nào có thể. Giải phẫu một ứng dụng Facebook Facebook cung cấp cho ứng dụng của bạn nhiều điểm tích hợp vào trong môi trường của người sử dụng Facebook: hai vùng quan trọng nhất được gọi là trang vải nền (canvas) và hộp khái lược của ứng dụng và một số điểm tích hợp phụ. Trang vải nền Bạn đến xem một trang vải nền của ứng dụng thông qua các điểm phụ trợ nổi bật nhất và dễ thấy nhất, đó là Dẫn hướng bên trái (Left Nav) một liên kết trong thanh dẫn hướng bên trái của Facebook, ở đó lên khung tất cả các trang khác trong Facebook và liệt kê tất cả các ứng dụng đã cài đặt của người sử dụng hiện tại (trừ khi người sử dụng quyết định không làm điều này khi cài đặt một ứng dụng). Ví
  16. dụ, bạn có thể nhấn vào liên kết Left Nav của ứng dụng Photos (Các bức ảnh) (xem Hình 8). Hình 8. Liên kết Left Nav Thao tác này sẽ mang tới trang vải nền của ứng dụng Photos, hiển thị một bản tóm tắt về các cập nhật gần đây nhất của các bạn bè của bạn đối với các album ảnh của họ, mà họ đã tạo ra bằng cách sử dụng ứng dụng Photos (xem Hình 9).
  17. Hình 9. Trang vải nền của Photos Tại đây bạn có thể nhấn vào một trong những album ảnh của các bạn bè của bạn và xem nó, vẫn ở trong trang vải nền Photos (xem Hình 10).
  18. Hình 10. Xem một album cụ thể trong trang vải nền Photos Về đầu trang Hộp khái lược Hộp khái lược của ứng dụng là một công cụ trên trang khái lược của người sử dụng, thường hiển thị một số loại thông tin tóm tắt về hoạt động của người sử dụng bên trong ứng dụng. Trong trường hợp của ứng dụng Photos, bạn có thể nhìn thấy một số album ảnh mới nhất của người sử dụng (xem Hình 11).
  19. Hình 11. Hộp khái lược của ứng dụng Photos Về đầu trang Các liên kết hành động khái lược Các liên kết hành động khái lược là các liên kết mà một ứng dụng có thể đăng lên trong khái lược của người dùng và chúng hiển thị trực tiếp ngay phía dưới ảnh của người dùng. Hành động khái lược của bạn có thể nói hay làm các việc khác nhau
  20. tùy thuộc vào việc người sử dụng ứng dụng hoặc một khách viếng thăm có đang xem khái lược vào lúc đó hay không. Ví dụ, đây là ứng dụng Photos đã đăng một liên kết hành động Mời xem các ảnh của tôi (View Photos of Me) trong khái lược của tôi (xem Hình 12). Hình 12. Liên kết hành động khái lược của ứng dụng Photos Nhấn chuột vào nó sẽ đưa bạn đến trang vải nền của ứng dụng, hiển thị các ảnh của tôi (xem Hình 13). Hình 13. Kết quả nhấn chuột vào liên kết hành động khái lược của ứng dụng
  21. Photos Về đầu trang Các yêu cầu Trang vải nền của ứng dụng và hộp khái lược cho phép những người sử dụng tự thể hiện về mình, nhưng các ứng dụng cũng cho phép những người sử dụng giao tiếp với nhau (và thúc đẩy ứng dụng phát triển), thông thường là qua các yêu cầu (Requests). Một người sử dụng có thể đưa ra một yêu cầu với một người dùng khác trong bối cảnh của một ứng dụng, ví dụ như yêu cầu một người bạn xác nhận đồng ý làm bạn trong ứng dụng Friends hoặc mời một người bạn tham gia một sự kiện trong ứng dụng Events. Các yêu cầu chờ giải quyết của người sử dụng xuất hiện trong hộp phía trên bên phải của trang chủ của họ (xem Hình 14).
  22. Hình 14. Tóm tắt yêu cầu đang chờ giải quyết trên trang chủ Người sử dụng có thể xem danh sách đầy đủ về các yêu cầu đang chờ giải quyết bằng cách nhấn chuột vào bất kỳ các yêu cầu nào được hiển thị (xem Hình 15). Hình 15. Trang các yêu cầu (Requests) của người sử dụng
  23. Các yêu cầu thường là các lời mời thêm vào chính ứng dụng đó hoặc có thể yêu cầu người sử dụng thêm ứng dụng trên con đường đáp ứng yêu cầu và là một mảng trong tiếp thị bằng truyền miệng của các ứng dụng Facebook (xem Hình 16). Hình 16. Yêu cầu thêm ứng dụng Các ứng dụng đòi hỏi sự tương tác của người sử dụng, chẳng hạn một trò chơi, có thể sử dụng Requests để cho phép những người dùng chơi với nhau. Ví dụ cơ bản và thường xuyên nhất về điều này là Yêu cầu kết bạn (Friend Request), trong đó những người sử dụng nhận biết các bạn bè của họ trên Facebook và yêu cầu xác nhận đồng ý kết bạn, tiếp tục kết nối liên hoàn đồ thị xã hội và cho phép hoạt động tương tác của người dùng với tất cả các ứng dụng khác. Trong khi Requests cho phép những người sử dụng mời nhau một cách rõ ràng tương tác với nhau bên trong một ứng dụng (và thường xuyên họ sẽ thêm ứng dụng trong khi làm điều đó), Nguồn cung cấp tin tức (News Feed), Nguồn cấp tin mini (Mini Feed), Các tin nhắn đính kèm (Message Attachments), thư điện tử (Email) và Các thông báo (Notifications) đều ngầm làm như vậy và giúp cho duy trì ứng dụng của bạn trong tâm trí người dùng và thúc đẩy việc sử dụng nó.
  24. Về đầu trang Nguồn cung cấp tin tức (News Feed) và Nguồn cấp tin mini (Mini Feed) Nguồn cung cấp tin tức là một ứng dụng xuất hiện trên trang chủ của người dùng, để hiển thị các mục tin tức được các ứng dụng của người dùng và bạn bè của người dùng đăng lên, thường là để đáp lại một số hoạt động của người sử dụng trong ứng dụng (xem Hình 17). Hình 17. Nguồn cung cấp Tin tức Các ứng dụng thường xuyên thông báo các mục nguồn cung cấp tin tức để trả lời một yêu cầu được chấp nhận, ví dụ một người sử dụng chấp nhận một yêu cầu "xác nhận đồng ý kết bạn" từ ứng dụng Friends (xem Hình 18). Hình 18. Mục xác nhận đồng ý kết bạn trong nguồn cung cấp tin tức
  25. Nguồn cung cấp tin tức về cơ bản là một blog công cộng về các tương tác của người sử dụng trong các ứng dụng của họ và thúc đẩy một bầu không khí thích thú và vui chơi qua mạng bạn bè. Nó lôi kéo bạn bè tham gia vào trò vui chơi và qua đó tương tác với các ứng dụng và tự cài đặt chúng. Nguồn cấp tin mini là một nguồn cung cấp tin tức tương tự trong một khái lược của người dùng, nhưng chỉ hiển thị các hoạt động từ các ứng dụng của người sử dụng đó về người sử dụng đó, và không có gì khác về bạn bè của họ. Như vậy, người sử dụng cũng có thể xoá các mục khỏi nó. Các ứng dụng có thể đăng các mục lên nguồn cấp tin mini của người sử dụng cụ thể hay lên cả nguồn cấp tin mini lẫn nguồn cung cấp tin tức (xem Hình 19). Hình 19. Nguồn cấp tin mini
  26. Về đầu trang Các tin nhắn đính kèm Các tin nhắn đính kèm (Message attachments) cho phép người dùng dễ dàng chia sẻ nội dung ứng dụng của họ với bạn bè của mình. Các ứng dụng có một mẩu ngắn FBML cố định được bao gồm trong một hộp thả xuống các tin nhắn đính kèm của người sử dụng khi gửi một tin nhắn tới hộp thư (Inbox) Facebook của một người dùng khác (xem Hình 20). Hình 20. Tin nhắn đính kèm trong tin nhắn Một người sử dụng cũng có thể bao gồm tin nhắn đính kèm của ứng dụng của bạn khi gửi một lời nhắn (note) lên bức tường (Wall) của một người dùng khác; Wall là một ứng dụng trên trang khái lược của người dùng (xem Hình 20).
  27. Hình 21. Đăng tin nhắn đính kèm lên Wall Về đầu trang Các thông báo và e-mail Các ứng dụng có thể gửi các thông báo cho những người sử dụng và các thông báo này sẽ xuất hiện trên trang các thông báo của người sử dụng (xem Hình 22).
  28. Hình 22. Trang các thông báo Đây là các mục một dòng chỉ người sử dụng đang nhận các thông báo có thể nhìn thấy và nó tách biệt với câu chuyện về nguồn cung cấp tin tức và nguồn cấp tin mini. Đối với các thông báo không công khai, có nghĩa là các giao tiếp riêng tư từ một ứng dụng trực tiếp đến một người sử dụng, một ứng dụng có thể gửi e-mail đến những người cùng sử dụng ứng dụng hoặc bạn bè của người sử dụng. Các e-mail này sẽ được gửi đến tài khoản email bên ngoài của người sử dụng (không phải tài khoản Facebook của họ) nếu họ đã có thiết lập đó. Các e-mail của một ứng dụng, các hành động Nguồn cung cấp Tin tức, Các thông báo và các đính kèm tin nhắn/đính kèm lên tường (Wall attachments) hoạt động để lôi kéo người dùng vào tương tác với các ứng dụng, kích hoạt thêm nhiều sự kiện
  29. như vậy và do đó hỗ trợ sự lây lan kiểu virus của một ứng dụng trong mạng Facebook. Về đầu trang Danh mục sản phẩm Các điểm tích hợp truyền miệng ấy thúc đẩy ứng dụng và duy trì nó sống động trong tâm trí của những người sử dụng, nhưng những người sử dụng cũng có thể chủ động tìm các ứng dụng để tự thêm vào, thông qua hộp Tìm kiếm (Search) ở góc trên bên trái của mọi màn hình (xem Hình 23). Hình 23. Tìm kiếm các ứng dụng Những người sử dụng cũng có thể duyệt qua các ứng dụng bằng cách nhấn vào liên kết Applications (các ứng dụng), luôn luôn nhìn thấy ngay bên dưới hộp tìm kiếm ở cột dẫn hướng bên trái (xem Hình 24).
  30. Hình 24. Liên kết ứng dụng Nhấn vào liên kết Applications để mở trang vải nền của ứng dụng Applications (xem Hình 25). Hình 25. Trang vải nền của ứng dụng Applications Bạn có thể quản lý các ứng dụng hiện tại được cài đặt của bạn và duyệt tìm những ứng dụng mới để thêm vào. Nhấn vào Browse more applications để mở điểm tích
  31. hợp khác cho ứng dụng của bạn, đó là Danh mục sản phẩm (Product Directory) (xem hình 25). Hình 26. Danh mục sản phẩm Ứng dụng của bạn đua tranh với các ứng dụng khác để được chú ý. Sẽ rất có ích khi lưu ý tới ba trong số bốn phiếu nằm dọc theo phía trên đỉnh của danh mục sản phẩm. Ba mục đầu tiên, Phổ biến gần đây nhất (Recently Popular), Hoạt động nhiều nhất (Most Activity) và Những người dùng tích cực nhất (Most Active Users) là các chức năng đo xem ứng dụng đã phổ biến đến mức độ nào, có nghĩa là các thiết bị tiếp thị bằng bằng lời nói (Các yêu cầu, Nguồn cung cấp tin tức, email và đính kèm tin nhắn/đính kèm lên tường) và việc tạo ra một ứng dụng để thúc đẩy tương tác của người sử dụng là quan trọng tột bực đối với khả năng lan rộng của nó, ngay cả khi những người sử dụng chủ động rõ ràng tìm kiếm các ứng dụng trong danh mục sản phẩm. Người sử dụng ứng dụng đầu tiên có thể tìm thấy nó trên phiếu Newest (Mới nhất), nơi bạn nhìn thấy các ứng dụng được xuất bản
  32. gần đây nhất. Từ đây, việc tự thúc đẩy để trở thành một điểm nhấn trên đồ thị xã hội là của chính bản thân ứng dụng. Về đầu trang Trang thông tin về ứng dụng (About) Nếu một ứng dụng trong danh mục sản phẩm được người dùng nhìn thấy, khi nhấn chuột vào liên kết của nó trong danh mục sản phẩm sẽ đưa họ đến trang About của ứng dụng (xem Hình 27), tại đây người dùng có thể tìm hiểu thêm về ứng dụng và hy vọng rằng họ sẽ thêm ứng dụng hoặc vào khái lược của họ hoặc vào một trang khác trên Facebook.
  33. Hình 27. Một trang About của ứng dụng Về đầu trang Thiết lập tính riêng tư (Privacy Settings) Cuối cùng, những người dùng có thể hạn chế các điểm tích hợp ứng dụng trong môi trường của họ thông qua ứng dụng Applications, trong đó liệt kê tất cả các chương trình ứng dụng đã cài đặt của bạn, cho phép bạn loại bỏ chúng hoặc chỉnh sửa từng giá trị cài đặt của chúng. Nhấn vào Edit Settings bên cạnh một ứng dụng
  34. để mở cửa sổ các giá trị thiết lập tính riêng tư tiêu chuẩn được áp dụng cho bất kỳ ứng dụng nào (xem Hình 28). Hình 28. Hộp thoại các giá trị thiết lập tính riêng tư tiêu chuẩn Sau đây là mô tả chi tiết các giá trị thiết lập tính riêng tư: • Ai có thể nhìn thấy cái này (Who can see this): Cho phép người sử dụng chỉ rõ những người có thể nhìn thấy bản cài đặt ứng dụng Photos của họ. Tùy chọn là: o Mạng của tôi và bạn bè: Bất kỳ ai ở trong bất kỳ một trong các mạng của người sử dụng (như New York, NY) và tất cả bạn bè của người sử dụng. o Các bạn bè của các bạn bè. o Chỉ các bạn bè.
  35. o Không ai cả o Tùy chỉnh: xuất hiện một cửa sổ cho phép người sử dụng tùy chỉnh các mạng cụ thể nào có thể xem chương trình ứng dụng và các bạn bè cụ thể nào của người dùng này không thể xem chương trình ứng dụng. • Hiển thị cái này trong trình đơn bên trái của tôi (Show this in my left- hand menu): Chỉ rõ xem ứng dụng này có nhận được một liên kết dẫn hướng bên trái (Left Nav) trong danh sách các ứng dụng đã cài đặt của người sử dụng không (trong cột dẫn hướng bên trái của người sử dụng). • Xuất bản các sự việc này lên Nguồn cung cấp tin tức của tôi (Publish stories about this in my News Feed): Chỉ rõ xem ứng dụng này có thể đăng các mục lên Nguồn cung cấp Tin tức của người sử dụng không (trên trang chủ của người sử dụng). • Xuất bản các sự việc này lên Nguồn cấp tin mini của tôi (Publish stories about this in my Mini-Feed): Chỉ rõ xem ứng dụng này có thể đăng các mục trong Nguồn cấp tin mini của người sử dụng không (trên trang khái lược). • Thêm một liên kết bên dưới hình ảnh khái lược vào bất kỳ khái lược nào (Add a link below the profile picture to any profile): Chỉ rõ xem ứng dụng này có thể đăng các liên kết hành động khái lược không. • Cho phép ứng dụng này liên lạc với tôi qua email (Allow this application to contact me via email): Chỉ rõ xem ứng dụng của bạn có thể gửi email cho người sử dụng. Lưu ý rằng mục này tham chiếu đến tài khoản email bên ngoài của người sử dụng; ứng dụng của bạn không thể gửi email đến một hộp thư Facebook của người sử dụng.
  36. Sau khi thiết lập tính riêng tư tiêu chuẩn, một ứng dụng cũng có thể cung cấp một cửa sổ cấu hình tùy chỉnh riêng của nó, có thể truy cập qua liên kết Các thiết lập tính riêng tư khác (Other Privacy Settings) trong cửa sổ thiết lập tính riêng tư tiêu chuẩn (xem Hình 29). Hình 29. Liên kết các thiết lập tính riêng tư khác trong hộp thoại thiết lập tính riêng tư tiêu chuẩn Bây giờ bạn đã xem xét lại những điểm tích hợp có sẵn cho ứng dụng của bạn, hãy xem xét làm thế nào để tạo ra nội dung của ứng dụng của bạn cho những điểm tích hợp khác nhau này. Về đầu trang FBML
  37. Bạn cần phải biểu hiện (render) nội dung mà Facebook có thể đã nhúng vào các trang web của nó, nhưng bạn không thể sử dụng trực tiếp mã HTML và mã Javascript như bạn sẽ làm trên trang web của riêng bạn. Facebook cần đảm bảo chắc chắn rằng nội dung không chứa bất kỳ mã Javascript độc hại nào, chẳng hạn như bất kỳ mục nào có thể làm hỏng trang Facebook chứa nó và cũng muốn làm cho càng dễ dàng càng tốt đối với các ứng dụng của bạn khi đưa các thông tin từ môi trường Facebook vào trong nội dung được biểu hiện. Câu trả lời của Facebook cho các vấn đề này là Ngôn ngữ đánh dấu FaceBook (FBML-Facebook Markup Language), một ngôn ngữ XML mà Facebook dịch sang mã HTML khi biểu hiện nội dung ứng dụng của bạn để cung cấp cho nội dung của bạn có quyền truy cập vào môi trường dữ liệu xung quanh giống như Facebook biểu hiện FBML trên các máy chủ của nó. Bạn có thể suy nghĩ về Facebook như là một bộ tiền xử lý văn bản, giống như XSLT hay PHP. Nó nhận nội dung FBML và dịch sang HTML, thay thế dữ liệu về người sử dụng hoặc môi trường vào nhiều thẻ đặc thù Facebook khác nhau. Để thay thế các chức năng Javascript bị mất, Facebook cung cấp ngôn ngữ FBJS (Facebook JavaScript). Để đơn giản hóa các truy vấn phức tạp vào cơ sở dữ liệu của Facebook và giảm số lần gọi cần thực hiện tới các máy chủ của Facebook, Facebook cung cấp Ngôn ngữ truy vấn Facebook (FQL-Facebook Query Language), một biến thể của SQL. Hình 30 minh họa luồng chảy thông tin từ máy chủ ứng dụng của bạn đến trình duyệt của người sử dụng. Hình 30. Dòng chảy thông tin từ máy chủ ứng dụng đến trình duyệt của
  38. người sử dụng Hầu hết các thẻ FBML giống hệt với các thẻ HTML và dẫn đến nội dung trình duyệt giống nhau khi phân tích cú pháp, nhưng FBML cũng cung cấp nhiều thẻ hành vi và các thẻ trích ra thông tin từ các cơ sở dữ liệu Facebook và đưa nó vào trong nội dung của bạn. Bạn sẽ nghiên cứu sâu hơn về vấn đề này trong phần 2. Còn đối với FBJS (Facebook Javascript), đây chỉ là Javascript với một số sửa đổi. Facebook phân tích cú pháp mã Javascript trông như bình thường của bạn và thực hiện thay đổi trước khi chuyển nó đến trình duyệt. Nó cũng sửa đổi DOM một chút, đặt các hạn chế về cách bạn có thể truy cập và sửa đổi các phần tử. Bạn sẽ xem xét về các thay đổi này kỹ hơn trong phần 2. Facebook cũng cung cấp sự hỗ trợ AJAX mạnh mẽ thông qua một đối tượng AJAX. Tất cả các yêu cầu của AJAX được ủy quyền qua các máy chủ của Facebook để mang lại cho bạn khả năng trả về mã FBML như là kết quả của một yêu cầu AJAX. Facebook xử lý mã FBML như nó thực hiện với bất kỹ mã nào khác, chèn trực tiếp dữ liệu của Facebook vào chỗ các thẻ đặc thù Facebook ví dụ như và lời gọi AJAX của bạn được trả về một đối tượng mà nó có thể đặt như là "FBML bên trong" của một phần DOM thông qua hàm setInnerFBML() của phần tử đó. Facebook không hỗ trợ các thuộc tính innerHTML vì lý do bảo mật, trừ một hàm setInnerXHTML() đang ở bản beta khi tôi viết bài này.
  39. Về đầu trang Giao tiếp giữa Máy chủ ứng dụng WebSphere và các máy chủ của Facebook Ứng dụng của chúng ta, chạy trong WebSphere, phải giao tiếp với Facebook và Facebook phải giao tiếp với ứng dụng của bạn. Giao tiếp của Facebook với kịch bản lệnh PHP của bạn bị hạn chế, chỉ được thông qua các yêu cầu trang vải nền (Canvas Page), nơi mà người dùng đang thực hiện một số hành động trong ứng dụng của bạn. Khi người sử dụng đi tới URL của trang vải nền của ứng dụng của bạn, ví dụ như Facebook ủy quyền yêu cầu này cho URL của máy chủ từ xa của bạn, ví dụ như và index.php của bạn trả về FBML cho Facebook để biểu hiện. Tương tự như vậy, mã FBJS của bạn thực hiện một yêu cầu AJAX, sẽ đi qua quá trình ủy quyền giống như thế, và gọi máy chủ của bạn để đáp lại. Ứng dụng của bạn cũng cần phải giao tiếp với Facebook, hoặc kéo hoặc đẩy các thông tin trong một yêu cầu. Nó thực hiện như vậy qua giao diện REST của Facebook, một giao diện HTTP mà trưng ra một API của các hàm dưới dạng các URL mà bạn có thể gọi với các tham số yêu cầu khác nhau đặc thù cho hàm đó và trả về XML hoặc JSON. May mắn thay, bạn không cần phải lo lắng về các chi tiết của các lời gọi HTTP này hoặc dữ liệu trả về vì Facebook cung cấp các thư viện khách của PHP, Java và Javascript – các trình bao bọc (wrapper) xung quanh giao diện REST để xử lý việc xây dựng các yêu cầu HTTP và việc sắp xếp theo thứ tự (marshalling) dữ liệu trả về thành các đối tượng có thể dùng được trong ngôn ngữ của thư viện khách.
  40. Về đầu trang Sử dụng thư viện khách Thư viện khách cung cấp một đối tượng API khách của Facebook, một đối tượng ủy quyền để chuyển lời gọi phương thức của chúng ta thành các yêu cầu đến các máy chủ của Facebook. Ví dụ, để có được những bạn bè của người sử dụng hiện tại, bạn chỉ cần gọi một hàm trên đối tượng Facebook (xem Liệt kê 1). Liệt kê 1. Obtaining the current user's friends via the PHP client library $friends = $facebook- >friends_get(); Chúng ta cũng có thể đẩy thông tin tới Facebook (thực hiện cập nhật dữ liệu). Ví dụ, hộp khái lược hoạt động khác với trang vải nền (xem Hộp khái lược-The Profile Box và Trang vải nền-The canvas page). Thay vì phải chờ đợi Facebook truy vấn máy chủ của bạn để tìm các nội dung của một hộp khái lược của người sử dụng, bạn phải đẩy nội dung đó một cách rõ ràng mỗi khi bạn muốn thay đổi nó. Facebook sau đó lưu trữ nội dung của hộp khái lược vào các máy chủ của nó. Điều này có nhiều ý nghĩa vì nếu nội dung của hộp khái lược này không được lưu trữ trên Facebook, Facebook sẽ phải hỏi máy chủ của bạn mỗi khi có bất kỳ ai xem khái lược của một người sử dụng có chứa ứng dụng của bạn và những người sử dụng mất nhiều thời gian của họ trên Facebook để xem từng khái lược của người
  41. khác và vì vậy phải nạp các hộp khái lược của tất cả các ứng dụng được cài đặt trên chúng. Đối với một ứng dụng phổ biến điều này sẽ chất lên trên máy chủ một gánh nặng công việc khổng lồ và cũng sẽ gây ra thời gian chậm trễ khi nạp các trang khái lược. Để thay đổi nội dung của hộp khái lược của ứng dụng của bạn trên một khái lược người dùng, bạn chỉ cần gọi một phương thức trên đối tượng $facebook được thư viện khách PHP cung cấp (xem Liệt kê 2). Liệt kê 2. Setting the content of your application's profile box on the current user's profile page. $facebook- >profile_setFBML ('New profile box content', $user); Mỗi một lời gọi phương thức này gửi một yêu cầu rõ ràng cho Facebook. Do ứng dụng của bạn sẽ ngày càng phức tạp hơn, nên mã PHP của bạn phải truy vấn Facebook để tìm ngày càng nhiều dữ liệu phức tạp hơn và dữ liệu phụ thuộc vào các kết quả của các lời gọi hàm trước đó. Ví dụ, bạn có thể muốn tìm nạp các tên của tất cả mọi người được gắn thẻ đánh dấu trong ứng dụng Photos của người sử dụng hiện tại, điều này sẽ đòi hỏi rằng đầu tiên bạn gọi Facebook để tìm tất cả các album của người sử dụng, sau đó để tìm tất cả các ảnh trong các album đó, rồi tìm tất cả các thẻ photo của các ảnh đó, sau đó tìm những người sử dụng của các thẻ
  42. photo đó rất nhiều công việc, rất nhiều yêu cầu tới các máy chủ của Facebook và rất nhiều mã PHP. Về đầu trang FQL Thay vào đó, bạn có thể sử dụng chỉ một truy vấn FQL (Ngôn ngữ truy vấn Facebook - Facebook Query Language), một biến thể của SQL được Facebook tạo ra để truy vấn trực tiếp cơ sở dữ liệu và dữ liệu ứng dụng lõi của nó. Nói ngắn gọn, FQL chỉ cho phép mệnh đề from truy vấn một bảng, nhưng cho phép có các truy vấn phụ trong các mệnh đề select và mệnh đề where, do đó truy vấn FQL sau đây sẽ tìm về cùng những thông tin như đã mô tả ở trên (các tên của những người sử dụng có ảnh), nhưng chỉ bằng một yêu cầu, ngắn gọn hơn và với mã dễ đọc hơn và viết thích hơn (xem Liệt kê 3). Liệt kê 3. Ví dụ về FQL - lựa chọn các tên của tất cả những người dùng có ảnh trong trang các ảnh (photos) của người sử dụng select first_name from user where uid in (select subject
  43. from photo_tag where pid in (select pid from photo where aid in (select aid from album where owner = 563830447))) Trong Liệt kê 3, 563830447 là số mã nhận dạng Facebook của tác giả. Yêu cầu FQL này trả về XML có chứa tên của thẻ ảnh duy nhất được tìm thấy trong số các bức ảnh của tác giả và là một ví dụ về đáp ứng REST của Facebook (xem Liệt kê 4). Liệt kê 4. Đáp ứng cho truy vấn FQL <fql_query_response
  44. xmlns=" " xmlns:xsi=" instance" list="true"> Jake Bạn có thể xác minh được điều này và thử nghiệm bằng các đoạn FBML, khi sử dụng bàn thử nghiệm của nhà phát triển của Facebook, được tìm thấy tại (xem hình 31).
  45. Hình 31. Bàn thử nghiệm API của Facebook Sử dụng các thư viện khách của FBML, FBJS, FQL và Facebook, bạn có thể phát triển một ứng dụng được tích hợp tốt vào trong môi trường và cung cấp các chức năng mạnh mẽ. Bây giờ bạn đã sẵn sàng để tạo ứng dụng của bạn.
  46. Bắt đầu phát triển ứng dụng Facebook Để bắt đầu phát triển ứng dụng, đầu tiên báo cho các máy chủ của Facebook biết về ứng dụng của bạn, thiết lập các tùy chọn cấu hình cần thiết, tạo ra một vài bảng cơ sở dữ liệu trong DB2, sau đó kết thúc bằng một mẫu nhỏ ban đầu về ứng dụng của bạn để xác nhận rằng nó được cài đặt đúng trong Facebook. Báo cho các máy chủ của Facebook biết về ứng dụng của bạn Nếu bạn chưa có một tài khoản Facebook, bước đầu tiên là tạo ra một tài khoản ở tại Facebook gửi một email xác nhận đến địa chỉ mà bạn cung cấp như là mã nhận dạng đăng nhập của tài khoản - nhấn chuột vào liên kết trong email để hoàn tất việc đăng ký của bạn. Tiếp theo, thêm ứng dụng Nhà phát triển Facebook (Facebook Developer Application) vào tài khoản của bạn sao cho bạn có thể thêm và quản lý các ứng dụng Facebook của mình. Sau khi đăng nhập vào tài khoản Facebook của bạn, hãy đi tới ở đây bạn sẽ được chuyển hướng tiếp (xem Hình 32).
  47. Hình 32. Thêm ứng dụng Nhà phát triển Giữ nguyên các giá trị mặc định và nhấn vào Add Developer. Bạn đã sẵn sàng để phát triển ứng dụng đầu tiên của mình (xem hình 33).
  48. Hình 33. Ứng dụng của nhà phát triển khi thêm nó lần đầu tiên Để làm các ứng dụng tương lai, bạn có thể đi tới trang vải nền của ứng dụng nhà phát triển thông qua liên kết Left Nav được cài đặt trong danh sách các ứng dụng của bạn. Để thêm vào một ứng dụng, nhấn vào Apply cho một phím ứng dụng (Application Key) và bắt đầu cấu hình (xem Hình 34).
  49. Hình 34. Tạo một ứng dụng mới Mặc dù bạn chỉ cần cung cấp một tên cho một ứng dụng và chấp nhận các điều khoản của nền tảng Facebook, ứng dụng của bạn sẽ không có ích lắm nếu không có những thông tin mà bạn cung cấp trong Optional Fields (xem Hình 35). Hãy chú ý rằng bạn có thể chỉnh sửa trang các thiết lập này bất kỳ lúc nào bạn cần đến trong tương lai sau khi lưu nó lần đầu. Bây giờ chỉ cần điền vào các trường cần thiết để bắt đầu. Trong Phần 2, khi bạn phát triển các ứng dụng, bạn sẽ quay lại trang các thiết lập này.
  50. Hình 35. Cấu hình ứng dụng Các trường tùy chọn (Optional Fields) • E-mail liên hệ của nhà phát triển (Developer Contact E-mail) và E-mail hỗ trợ người dùng (User Support E-mail): là email đăng nhập Facebook của bạn; địa chỉ email đầu tiên là để Facebook liên lạc với bạn nếu như ứng dụng của bạn có vấn đề và địa chỉ email thứ hai là để những người sử dụng liên lạc với bạn thông qua trang trợ giúp trong ứng dụng của bạn.
  51. • URL của trang vải nền (Canvas Page URL): URL của trang vải nền của ứng dụng của bạn trên trang Facebook, ví dụ như URL phải là duy nhất trong số tất cả các ứng dụng Facebook, nhưng một khi bạn đã gõ số lượng ký tự đủ nhiều, một trình báo hiệu Javascript sẽ báo cho bạn ngay khi đang gõ vào là URL còn có sẵn để dùng hay không, vì thế không cần phải tìm trước các tên trong danh mục ứng dụng để đảm bảo tính duy nhất đó (xem Hình 36). Hình 36. Nhập vào một URL duy nhất dành cho trang vải nền • Url gọi ngược lại (Callback Url): Thực ra không hoàn toàn là gọi ngược lại theo đúng nghĩa, mà đó là một đại diện ủy quyền của URL của ứng dụng trên máy chủ từ xa. Trong trường hợp này, đó là URL của kịch bản lệnh PHP đang chạy trên máy chủ Apache 2 của bạn để đưa ra nội dùng của vùng vải nền, ví dụ như, Hiệu quả kết hợp của URL của trang vải nền và URL gọi ngược lại (Callback) là ở chỗ những người dùng có thể tới URL của trang vải nền trong trình duyệt của mình để xem trang vải nền ứng dụng của bạn và Facebook điền vào vùng vải nền trên trang đó bằng cách gọi một kịch bản lệnh PHP từ xa của bạn. Facebook không bao giờ để lộ ra URL gọi ngược lại cho bất kỳ ai trừ nhà phát triển ứng dụng.
  52. • Sử dụng FBML / Sử dụng khung nội tuyến (iframe): Là lựa chọn để báo cho Facebook biết URL gọi ngược lại của trang vải nền (Canvas Page Callback) của bạn trả về FBML để Facebook sau đó dịch sang HTML hay là nó trả về thẳng HTML trực tiếp để Facebook hiển thị đúng nguyên văn trong một khung nội tuyến, như là nội dung của vùng vải nền. Vì FBML dù thế nào đi nữa cũng cung cấp một thẻ và cung cấp rất nhiều chức năng để truy cập vào môi trường Facebook khi biểu hiện nội dung FBML, không có lý do gì để không sử dụng FBML. Nếu bạn có một thành phần HTML/Javascript mà bạn muốn nhúng vào, bạn có thể đưa nguyên văn nó vào nguồn của một bên trong trang vải nền FBML của bạn. • Kiểu ứng dụng (Application Type): Chọn Website để chỉ định rằng ứng dụng của bạn là ứng dụng được nhúng vào, có nghĩa là được sử dụng trực tiếp trong trang Web Facebook. Chọn Desktop để chỉ định rằng ứng dụng là một ứng dụng trên máy để bàn hay là phần mở rộng của trình duyệt để giao tiếp với các máy chủ của Facebook, ví dụ, một ứng dụng trên máy để bàn nhằm nạp lên và tải về cả khối các bức ảnh của Facebook. • Các địa chỉ IP của máy chủ gửi các yêu cầu (IP Addresses of Servers Making Requests): Để tăng thêm tính bảo mật, hãy chỉ rõ địa chỉ IP máy chủ từ xa của bạn sao cho chỉ có máy chủ của bạn có thể gửi các yêu cầu Facebook (kéo hoặc đẩy dữ liệu) thay mặt cho ứng dụng Facebook của bạn. Nếu ứng dụng của bạn chạy trên nhiều địa chỉ IP, bạn nên chỉ rõ tất cả chúng ở đây. • Ứng dụng của bạn có thể được thêm vào Facebook không (Can your application be added on Facebook)?: Nhấn Yes. Điều này chỉ rõ người sử dụng, bao gồm các nhà phát triển, có thể thêm ứng dụng của bạn vào tài khoản của họ hay không. Chỉ rõ Chế độ phát triển(Developer Mode) ở
  53. dưới để hạn chế quyền truy cập chỉ cho các nhà phát triển vào thời điểm này. Dưới nút Developers hãy chỉ rõ các tên của các nhà phát triển khác có thể truy cập vào ứng dụng, khi nó ở trong chế độ phát triển. • Tùy chọn kích thước vải nền của khung nội tuyến mặc định (Default Iframe Canvas Size Option): Tùy chọn này chỉ có liên quan nếu bạn đã đánh dấu chọn nút tròn của khung nội tuyến thay vì FBML làm kiểu nội dung mà URL gọi ngược lại sẽ trả về. Trong trường hợp chọn khung nội tuyến, Facebook không đưa nội dung vào một thẻ HTML thuần túy, mà nó sử dụng thẻ tương đương của FBML để cung cấp một số chức năng tùy chỉnh bổ sung thêm, bao gồm cả hai thuộc tính boolean loại trừ lẫn nhau, là kích thước thông minh (smartsize) và kích thước điều chỉnh được (resizable), chỉ rõ khung nội tuyến được điều chỉnh kích thước như thế nào. Thuộc tính kích thước thông minh (Smart size) báo cho Facebook điều chỉnh kích thước của khung nội tuyến cho phù hợp với vùng vải nền và thuộc tính kích thước điều chỉnh được (resizable) chỉ rõ rằng kích thước của khung nội tuyến có thể được đặt bằng cách sử dụng API Javascript. Vì bạn đã chọn FBML, nên tùy chọn này là không phù hợp với ứng dụng của bạn. Về đầu trang Các tùy chọn cài đặt và các điểm tích hợp Việc chọn Yes cho tùy chọn “Ứng dụng của bạn có thể được thêm vào Facebook không?” sẽ làm tiết lộ thêm hai phần tùy chọn, tùy chọn cài đặt và các điểm tích hợp (xem Hình 37 và Hình 38).
  54. Hình 37. Cấu hình ứng dụng Tùy chọn cài đặt • Ai có thể thêm ứng dụng của bạn vào tài khoản Facebook của họ (Who can add your application to their Facebook account)?: Đối với ứng dụng của bạn, chọn Users, điều này chỉ rõ rằng những người sử dụng có thể thêm ứng dụng vào tài khoản của họ. Bạn cũng có thể chỉ rõ rằng ứng dụng có thể được thêm vào các trang web cụ thể hay các kiểu trang web cụ thể nào đó trong Facebook.
  55. • Mô tả ứng dụng (Application Description): Đặt bất kỳ lời văn nào mà bạn muốn xuất hiện trên trang thêm ứng dụng khi người sử dụng được nhắc thêm ứng dụng. • FBML mặc định (Default FBML): Đây là FBML được biểu hiện đầu tiên trên trang Khái lược của người sử dụng, cho đến khi ứng dụng của bạn cập nhật rõ ràng khái lược của họ, sử dụng thư viện khách PHP (chi tiết hơn về điều này có trong phần 2 của hướng dẫn này). Bây giờ bạn chỉ cần đặt vào đây một cái gì đó để giữ chỗ nhằm hoàn tất bước này để chạy được ứng dụng mẫu. • Cột của hộp khái lược mặc định (Default Profile Box Column): Chọn Narrow. Điều này chỉ rõ rằng chương trình ứng dụng của bạn sẽ xuất hiện trong cột hẹp hơn ở bên trái của trang khái lược chứ không phải cột rộng hơn. • Chế độ nhà phát triển (Developer Mode): Lựa chọn chế độ này để chỉ cho phép các nhà phát triển ứng dụng được thêm nó vào tài khoản của họ. Ứng dụng vẫn chưa được đăng vào trong Danh mục sản phẩm, cho nên ít khả năng có người sử dụng nào đó tìm thấy nó, nhưng nếu họ biết được URL thì họ có thể truy cập nó. Phần các điểm tích hợp cho phép bạn chỉ rõ các điểm tích hợp phụ thêm nữa trong môi trường của người sử dụng. Hiện giờ chỉ cần định rõ URL của dẫn hướng cạnh bên (Side Nav), mà nó chính là URL của liên kết xuất hiện trong danh sách ứng dụng của bạn (liên kết Left Nav). Hãy chắc chắn rằng URL là giống hệt với URL của Trang vải nền và tất cả các chữ đều là chữ viết thường. Các URL của Trang vải nền có phân biệt chữ hoa, chữ thường và thậm chí nếu bạn chỉ rõ một URL của Trang vài nền có kiểu chữ hỗn hợp, nó được chuyển đổi tất cả thành chữ thường,
  56. do đó chắc chắn rằng ở đây bạn đã dùng dạng chữ thường, vì nếu trái lại liên kết này sẽ tạo ra lỗi không tìm thấy trang. Hình 38. Cấu hình Ứng dụng Các điểm tích hợp Nhấn nút đệ trình (submit) các tùy chọn đã thiết lập và bạn sẽ thấy một trang tóm tắt (xem Hình 39).
  57. Hình 39. Trang tóm tắt các giá trị tùy chọn đã thiết lập của ứng dụng Để thay đổi các giá trị đã thiết lập này, hãy nhấn vào Edit Settings ở bên phải.
  58. Cuối cùng, để kiểm tra việc thiết lập, hãy tạo ra một tệp index.php cơ bản để xác nhận rằng Facebook đang kéo một cách chính xác nội dung của bạn qua đại diện ủy quyền URL gọi ngược lại. Bạn có thể kết nối với Facebook qua thư viện khách PHP và Facebook sẽ biểu hiện FBML của bạn. Tạo một thư mục trong máy chủ Apache 2 của bạn cho ứng dụng của bạn, C:\Program Files\Zend\Apache2\htdocs\fb_stock_demo. Sau đó, hãy vào và tải về thư viện khách PHP dưới dạng tệp tar.gz (xem Hình 40). Hình 40. Tải về thư viện khách PHP Thư mục nền tảng facebook ở bên trong có chứa một thư mục khách, thư mục khách gồm các mã khách PHP Facebook. Sao chép thư mục khách này vào thư mục trong Apache 2 vừa tạo ra ở trên để tạo thành thư mục con mới C:\Program Files\Zend\Apache2\htdocs\fb_stock_demo\client. Tiếp theo, bạn sẽ tạo ra chính bản thân tệp index.php, trong thư mục C:\Program Files\Zend\Apache2\htdocs\fb_stock_demo (xem Liệt kê 5). Liệt kê 5: Một tệp index.php đơn giản cho Trang vải nền <?php
  59. // the facebook client library include_once './client/facebook.php'; // the values on our application's settings summary page $api_key = 'YOUR_API_KEY'; $secret = 'YOUR_SECRET'; // connect to Facebook, require app installation $facebook = new Facebook($api_key, $secret); $facebook- >require_frame();
  60. $facebook- >require_install(); // obtain the user's id $user = $facebook- >require_login(); ?> Hi " useyou="false"/>! Welcome to the Developer Works Stock Broker Demo. Coming
  61. soon Dòng đầu tiên là để bao gồm (include) thư viện khách PHP Facebook. Đặt $api_key và $secret bằng các giá trị API Key và giá trị Secret trên trang tóm tắt của ứng dụng của bạn. Dòng kế tiếp kết nối vào Facebook, tạo ra một đối tượng ủy nhiệm mà bạn sẽ sử dụng để giao tiếp với các máy chủ của Facebook. Khi sử dụng đối tượng ủy nhiệm này, bạn yêu cầu người sử dụng đang xem ứng dụng của bạn đã phải đăng nhập vào ứng dụng để xem được, và nhận được mã nhận dạng id của người sử dụng để sử dụng nó trong thẻ dưới đây. Bản thân FBML hầu hết là HTML thuần túy và được biểu hiện hoàn toàn tương tự. Thẻ đem lại hương vị FBML Facebook biến thẻ đó thành tên của người sử dụng xem ứng dụng (vì bạn đã chuyển mã nhận dạng id của người sử dụng đó). Thẻ này cung cấp một số các tùy chọn và nhiều chức năng về tạo ra văn bản thực sự như thế nào. Trong ví dụ này, chỉ rõ useyou="false" để ghi đè lên giá trị mặc định, là biểu hiện từ you thay cho tên của người sử dụng bởi vì mã nhận dạng id của người sử dụng đã chỉ rõ những người đó là người sử dụng đang xem ứng dụng. Trong trường hợp này bạn muốn nói với người xem của bạn bằng chính tên của họ khi gửi lời chào mừng. Đặt tệp index.php này vào trong thư mục ứng dụng của bạn, dưới thư mục htdocs của Apache 2, C:\Program Files\Zend\Apache2\htdocs\fb_stock_demo và đi tới URL trang vải nền của ứng dụng của bạn của trong trình duyệt, ví dụ như (xem Hình 41).
  62. Hình 41. Thêm ứng dụng của bạn định tuyến đến trang vải nền của nó Để nguyên tất cả mọi thứ đã đánh dấu chọn, nhấn vào nút thêm (add) ở dưới đáy và bạn đến trang khái lược của mình. Cuộn xuống dưới và bạn sẽ nhìn thấy hộp khái lược của ứng dụng của bạn, có chứa các mã FBML mặc định mà bạn đã cung cấp (xem Hình 42). Hình 42. Hộp khái lược của ứng dụng của bạn
  63. Cuộn ngược lên để xem danh sách ứng dụng của bạn và thấy rằng ứng dụng của bạn đã thêm vào liên kết Left Nav của nó (xem hình 42). Bạn có thể phải nhấn vào 'more' để hiển thị toàn bộ danh sách những chương trình ứng dụng. Hình 43. Liên kết Left Nav của ứng dụng của bạn Nhấn vào liên kết của ứng dụng và chiêm ngưỡng trang vải nền mới tạo ra của bạn (xem Hình 44). Hình 44. Trang vải nền của ứng dụng của bạn Mặc dù vào lúc này nó chỉ thân thiện hơn là có ích, bây giờ bạn đã có một ứng dụng Facebook cơ bản được dựng lên và đang chạy.
  64. Thiết lập các cơ sở dữ liệu DB2 phía sau Bây giờ sẽ cần phải định nghĩa một số các bảng cơ sở dữ liệu cho ứng dụng của bạn, mà bạn sẽ làm trong phần này. Định nghĩa các bảng Nghề môi giới chứng khoán có những người giao dịch và các cổ phần và những người giao dịch mua và bán cổ phiếu chứng khoán để duy trì "các vị trí" của họ trên mỗi loại cổ phần – họ sở hữu bao nhiêu cổ phiếu hoặc đã thiếu hụt bao nhiêu. Tiền tố brokerage (môi giới) được thêm vào trước tên mọi bảng để chỉ rõ một lược đồ cho các bảng; nếu không, chúng sẽ thuộc lược đồ mặc định. Sử dụng giao diện dòng lệnh của DB2 để tạo ra các bảng. Từ trong một cửa sổ nhắc lệnh, hãy mở một cửa sổ nhắc lệnh DB2 bằng cách gõ db2cmd và sau đó từ cửa sổ nhắc lệnh DB2 được mở ra, bắt đầu một phiên DB2 bằng cách gõ db2start. DB2 sẽ đưa ra kết quả: xử lý SQL2063N DB2START đã thành công (SQL2063N DB2START processing was successful). Tiếp theo, tạo một cơ sở dữ liệu, gọi là " stocks": bằng cách gõ db2 create database stocks, Nó sẽ báo kết quả lệnh tạo cơ sở dữ liệu đã thực hiện thành công (The CREATE DATABASE command completed successfully). Kết nối vào cơ sở dữ liệu bằng cách gõ db2 connect to stocks. DB2 sẽ đưa ra kết quả Thông tin kết nối cơ sở dữ liệu (Database Connection Information, phiên bản của DB2, mã nhận dạng ID được cấp quyền hạn SQL và bí danh của cơ sở dữ liệu là "stocks". Bắt đầu tạo ra bảng của bạn (xem Tải về để tìm tất cả các sql được sử dụng trong phần này). Đầu tiên, tạo một bảng trader (người môi giới), để trống nó với mục đích làm ứng dụng trình diễn mẫu (xem Liệt kê 6).
  65. Liệt kê 6. Tạo bảng trader trong DB2 db2 create table trader ( id int not null primary key generated always as identity, username varchar(30) not null unique, password varchar(30) not null) Một đặc tính của DB2 7.1 và các phiên bản mới hơn là là có khả năng luôn tự động tạo ra nhận dạng (generated always as identity) đó là cung cấp một cơ chế đánh thứ tự đơn giản; bạn không bao giờ phải chỉ định giá trị của khóa chính khi chèn các hàng vào trong bảng.
  66. Sử dụng cùng một kỹ thuật tương tự, hãy tạo ra một bảng dành cho các cổ phần trong Liệt kê 7. Liệt kê 7. Tạo bảng stock trong DB2 db2 create table stock ( id int not null primary key generated always as identity, ticker varchar(5) not null unique) Tiếp theo tạo bảng lưu trữ phần chủ yếu của dữ liệu, đó là bản thân các giao dịch chứng khoán. Mỗi giao dịch biểu diễn một việc mua hoặc bán cổ phiếu, và nó được liên kết với một người giao dịch và một loại chứng khoán. Một giao dịch lưu giữ số cổ phiếu (một giá trị âm biểu thị lượng bán hoặc lượng thiếu hụt của một cổ phần, một giá trị dương biểu thị lượng mua) và giá của mỗi cổ phiếu tại thời điểm giao dịch. Lưu ý rằng share_price là một int vì bạn lưu trữ share_price như là giá tính theo đơn vị xu (cents) để tránh lỗi dấu phẩy động (xem Liệt kê 8).
  67. Liệt kê 8. Tạo ra bảng trade trong DB2 db2 create table trade ( id int not null primary key generated always as identity, trader_id int not null references trader(id) on delete cascade, stock_id int not null references stock(id) on delete cascade, shares int
  68. not null, share_price int not null, created_on timestamp not null) Với mục đích trình diễn mẫu, khi bạn cần có một vị trí hiện tại của người giao dịch trên một chứng khoán, bạn sẽ tổng cộng các kết quả của các giao dịch của người giao dịch ấy về chứng khoán đó, đối lập với việc lưu trữ vị trí hiện tại của những người giao dịch trong một bảng riêng biệt như là một bản chụp nhanh tại thời điểm của mỗi giao dịch. Cuối cùng, thay cho việc thêm một facebook_user_id trực tiếp vào bảng giao dịch, hãy sử dụng một bảng facebook_user riêng biệt, bởi vì bạn đang thêm một ứng dụng Facebook đến một hệ thống trực tuyến môi giới chứng khoán hiện có (xem Liệt kê 9). Liệt kê 9. Tạo một bảng facebook_user riêng biệt trong DB2 db2 create table
  69. facebook_user ( facebook_user_id int not null primary key, trader_id int not null references trader(id) on delete cascade, created_on timestamp not null) Bạn chỉ chèn một hàng facebook_user khi một người sử dụng Facebook thêm ứng dụng của bạn vào tài khoản Facebook của họ, tại điểm mà họ đăng nhập vào hệ thống của bạn để bạn có thể liên kết mã nhận dạng id Facebook của họ với bản ghi của người giao dịch hiện tại của họ trong hệ thống hiện tại của bạn. Nếu họ không có một bản ghi của người giao dịch hiện tại ở đó, hãy yêu cầu họ tạo ra một bản ghi như thế trên hệ thống của bạn; ứng dụng Facebook giúp thúc đẩy việc đăng ký mới trên trên trang web giao dịch hiện tại của bạn. Về đầu trang
  70. Điền dữ liệu bằng các tài khoản môi giới mẫu Để cung cấp cho ứng dụng của bạn một số dữ liệu phục vụ hoạt động, hãy điền vào các bảng một ít thông tin. Đầu tiên tạo ra một số những người giao dịch (xem Liệt kê 10). Liệt kê 10. Tạo những người giao dịch mẫu trong cơ sở dữ liệu db2 insert into trader (username, password) values ('jake1', 'password1') db2 insert into trader (username, password) values ('jake2', 'password2') Tiếp theo tạo một số cổ phần (xem Liệt kê 11) trong cơ sở dữ liệu đó.
  71. Liệt kê 11. Tạo ra một số cổ phần mẫu trong cơ sở dữ liệu db2 insert into stock (ticker) values ('JAKE') db2 insert into stock (ticker) values ('NYC') db2 insert into stock (ticker) values ('ABC') db2 insert into stock (ticker) values ('USB') db2 insert into stock (ticker) values ('UCLA')
  72. db2 insert into stock (ticker) values ('KRZY') Sau đó, bạn sẽ khởi động hai người giao dịch của bạn bằng việc mua lần đầu là 100 cổ phiếu của 3 mã chứng khoán ở mức giá khác nhau (xem các bảng liệt kê 12 và 13). Liệt kê 12. Tạo giao dịch mẫu của người giao dịch "jake1" db2 insert into trade (trader_id, stock_id, shares, share_price, created_on) select trader.id, stock.id, 100, 4400, current timestamp
  73. from trader, stock where trader.username = 'jake1' and stock.ticker = 'JAKE' db2 insert into trade (trader_id, stock_id, shares, share_price, created_on) select trader.id, stock.id, 100, 2300, current timestamp from trader, stock where
  74. trader.username = 'jake1' and stock.ticker = 'NYC' db2 insert into trade (trader_id, stock_id, shares, share_price, created_on) select trader.id, stock.id, 100, 6400, current timestamp from trader, stock where trader.username = 'jake1' and
  75. stock.ticker = 'ABC' Liệt kê 13 tạo các giao dịch mẫu của người giao dịch "jake2". Liệt kê 13. Tạo các giao dịch mẫu của người giao dịch "jake2" db2 insert into trade (trader_id, stock_id, shares, share_price, created_on) select trader.id, stock.id, 100, 1200, current timestamp from trader, stock where
  76. trader.username = 'jake2' and stock.ticker = 'USB' db2 insert into trade (trader_id, stock_id, shares, share_price, created_on) select trader.id, stock.id, 100, 10200, current timestamp from trader, stock where trader.username = 'jake2' and
  77. stock.ticker = 'UCLA' db2 insert into trade (trader_id, stock_id, shares, share_price, created_on) select trader.id, stock.id, 100, 5200, current timestamp from trader, stock where trader.username = 'jake2' and stock.ticker = 'KRZY'
  78. Để xác nhận rằng bạn đã thiết lập xong tất cả, hãy thực hiện một số câu lệnh chọn . Bắt đầu bằng cách gõ select * from trader. DB2 sẽ đưa ra kết quả 2 bản ghi được chọn (2 record(s) selected). Sau đó gõ select * from stock. DB2 sẽ đưa ra kết quả 6 bản ghi được chọn (6 record(s) selected). Sau đó gõ select * from trade. DB2 sẽ đưa ra kết quả 6 bản ghi được chọn (6 record(s) selected), một bản ghi ứng với mỗi giao dịch mẫu mà bạn thiết lập. Vì bạn không có bất kỳ dữ liệu mẫu nào cho bảng facebook_user, nên không có gì để xác nhận. Như vậy, vào thời điểm này bạn đã cài đặt các công cụ của bạn, ứng dụng Facebook cơ bản của bạn đang chạy và một cơ sở dữ liệu sẵn sàng cho hoạt động. Bạn đang sẵn sàng để bắt đầu phát triển ứng dụng Facebook của bạn trong Phần 2!
  79. Tóm tắt Facebook cung cấp một đồ thị xã hội phong phú của người sử dụng và một tập hợp phong phú các điểm tích hợp mà bạn có thể khai thác trong việc phát triển một ứng dụng xã hội, tương tác. Sử dụng cơ sở dữ liệu DB2 của IBM, môi trường của Nhà phát triển Ứng dụng Rational và Máy chủ Ứng dụng WebSphere cho phía Java và Zend Core PHP cho phía PHP của ứng dụng của bạn, bạn có thể làm việc với cả hai công nghệ khi cần trong doanh nghiệp của bạn. Ở đây bạn đã có một nhìn cái nhìn đầu tiên về Facebook, đã cài đặt các thành phần của bạn, tham gia một vòng khảo sát các điểm tích hợp của Facebook để hướng dẫn bạn trong việc phát triển một ứng dụng, đã xem xét ngắn gọn về FBML, FBJS và FQL và bắt đầu phát triển với một số phần cơ bản trên phía PHP. Bây giờ bạn đang sẵn sàng cho phần 2, nơi mà bạn sẽ đi sâu vào và triển khai thực hiện ứng dụng bằng cách sử dụng các công nghệ này.