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.
76 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2092 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
á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®.
Trang bị Nhà phát triển ứng dụng Rational và Máy chủ ứng dụng WebSphere để
phát triển Java
Để 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ị
Bây giờ bạn đã thiết lập Máy chủ ứng dụng WebSphere, hãy chuyển sang phía
PHP.
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.
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ỗ
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).
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.
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í
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).
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).
Hình 10. Xem một album cụ thể trong trang vải nền Photos
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).
Hình 11. Hộp khái lược của ứng dụng Photos
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
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
Photos
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).
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
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ó.
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
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
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).
Hình 21. Đăng tin nhắn đính kèm lên Wall
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).
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
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.
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).
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
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
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.
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.
Hình 27. Một trang About của ứng dụng
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
để 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è.
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.
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.
FBML
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
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.
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.
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
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ẻ
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.
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
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
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).
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.
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).
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).
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).
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.
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.
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.
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) ở
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.
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).
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.
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,
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).
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.
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
// 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();
$facebook-
>require_install();
// obtain the user's id
$user = $facebook-
>require_login();
?>
<div style="border:
solid black 1px;
padding: 25px;">
Hi <fb:name
firstnameonly="true"
uid=""
useyou="false"/>!
Welcome to the
Developer Works Stock
Broker Demo. Coming
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).
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
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.
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).
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.
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).
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
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
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.
Đ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 đó.
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')
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
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
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
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
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
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'
Để 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!
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.
Các file đính kèm theo tài liệu này:
- Làm chủ việc phát triển ứng dụng Facebook bằng PHP, IBM Rational Application Developer, IBM WebSphe_.pdf