Tải bản đầy đủ (.pdf) (80 trang)

Làm chủ việc phát triển ứng dụng Facebook bằng PHP ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.4 MB, 80 trang )





GIÁO TRÌNH
LÀM CHỦ VIỆC PHÁT TRIỂN ỨNG
DỤNG FACEBOOK BẰNG PHP
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
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ó
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).
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
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, đó
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

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ụ.
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
Để 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.

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


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

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


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

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

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

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


×