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

ỨNG DỤNG FACEBOOK GRAPH API VÀO VIỆC XÂY DỰNG WEBSITE TỰ ĐỘNG THỰC HIỆN CÁC THAO TÁC TRÊN FACEBOOK

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.9 MB, 60 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN

------

NGUYỄN THỊ THU

TÊN ĐỀ TÀI:

ỨNG DỤNG FACEBOOK GRAPH API VÀO VIỆC XÂY DỰNG WEBSITE TỰ ĐỘNG THỰC HIỆN CÁC THAO TÁC

TRÊN FACEBOOK

<i>KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC </i>

<i>Quảng nam, tháng 5 năm 2019 </i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN

------

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC

<i>Tên đề tài: </i>

ỨNG DỤNG FACEBOOK GRAPH API VÀO VIỆC XÂY DỰNG WEBSITE TỰ ĐỘNG THỰC HIỆN CÁC THAO TÁC

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

MỤC LỤC

Phần 1: MỞ ĐẦU ... 1

1. Lí do chọn đề tài ... 1

2. Mục tiêu của đề tài... 1

3. Đối tượng và phạm vi nghiên cứu ... 2

4. Phương pháp nghiên cứu ... 2

5. Đóng góp của đề tài ... 2

6. Cấu trúc đề tài ... 3

Phần 2. NỘI DUNG NGHIÊN CỨU ... 4

Chương 1. CƠ SỞ LÝ THUYẾT ... 4

1.1. Giới thiệu về Facebook ... 4

<i>1.1.1. Facebook là gì? ... 4 </i>

<i>1.1.2. Lịch sử phát triển ... 4 </i>

<i>1.1.3. Điểm mạnh và yếu của mạng xã hội Facebook ... 4 </i>

1.2. Giới thiệu về Facebook Graph API ... 5

<i>1.2.1. Facebook Graph API là gì? ... 5 </i>

<i>1.2.2. Facebook Graph API là việc như thế nào?... 6 </i>

<i>1.2.3. Ưu điểm và khuyết điểm trong việc sử dụng Facebook Graph API ... 6 </i>

1.3. Giới thiệu về Facebook Login ... 7

1.4. Giới thiệu về SDK ... 8

<i>1.4.1. Facebook SDK cho Javascript ... 9 </i>

<i>1.4.2. Facebook SDK cho PHP ... 9 </i>

1.5. Tổng quan về ngơn ngữ PHP và mơ hình MVC ... 9

<i>1.5.1. Giới thiệu về ngôn ngữ PHP ... 9 </i>

<i>1.5.2. Giới thiệu mơ hình MVC ... 11 </i>

<i>1.5.3. Giới thiệu về MySQL ... 14 </i>

Chương 2. PHÂN TÍCH THIẾT KẾ WEBSITE TỰ ĐỘNG THỰC HIỆN CÁC THAO TÁC ĐĂNG BÀI, BÌNH LUẬN TRÊN FACEBOOK ... 17

2.1. Tìm hiểu chung về ứng dụng web tự động thực hiện các thao tác trên Facebook ... 17

<i>2.1.1. Mơ tả bài tốn ... 17 </i>

<i>2.1.2. Phân tích ... 17 </i>

<i>2.1.3. Dự trù khả năng đạt được ... 19 </i>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

2.2. Xây dựng chức năng của ứng dụng ... 19

<i>2.2.1. Xác định Actor và vai trò của Actor trong hệ thống ... 19 </i>

Chương 3: XÂY DỰNG WEBSITE TỰ ĐỘNG THỰC HIỆN CÁC THAO TÁC ĐĂNG BÀI, BÌNH LUẬN TRÊN FACEBOOK ... 34

3.1. Cơ sở dữ liệu ... 34

3.2. Một số đoạn code chính của chương trình ... 39

3.3. Một số giao diện của trang web ... 44

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

DANH MỤC CÁC TỪ VIẾT TẮT

API Application Programming Interface Là các hàm thư viện cho phép một ứng dụng có thể tương tác với một ứng dụng khác

SDK Software Development Kit Là một tập hợp công cụ hỗ trợ cho việc phát triển phần mềm thông qua một nền tảng nào đó. HTTP HyperText Transfer Protocol Là giao thức truyền tải siêu văn bản được sử dụng trong www dùng để truyền tải dữ liệu giữa web server đến các trình duyệt web và ngược lại thao tác với URL

MVC Model – View – Controller Là một mô hình thiết kế theo hướng đối tượng, cho phép chia nhỏ code thành 3 phần là: Model, View, Controller

PHP Viết tắt hồi quy: “PHP: Hypertext

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

DANH MỤC HÌNH ẢNH

Hình 1. Mơ hình MVC ... 12

Hình 2. Biểu đồ Use case ... 20

Hình 3. Biểu đồ phân rã chức năng ... 25

Hình 4. Biểu đồ trình tự chức năng đăng nhập ... 26

Hình 5. Biểu đồ trình tự cập nhật bài đăng ... 27

Hình 6. Biểu đồ trình tự thêm bài đăng ... 28

Hình 7. Biểu đồ trình tự cập nhật bình luận ... 29

Hình 8. Biểu đồ trình tự cập nhật tài khoản người dùng ... 30

Hình 9. Biểu đồ hoạt động đăng nhập ... 31

Hình 10. Biểu đồ hoạt động cập nhật bài đăng ... 31

Hình 11. Biểu đồ hoạt động thêm lịch đăng bài ... 32

Hình 12. Biểu đồ hoạt động cài đặt... 32

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Hình 25. Bảng statics ... 38

Hình 26. Bảng users ... 38

Hình 27. Biểu đồ diagram ... 39

Hình 28. Giao diện chính của website ... 44

Hình 29. Giao diện chính của website ... 44

Hình 30. Giao diện quản lý bài đăng ... 45

Hình 31. Giao diện quản lý lịch đăng bài ... 46

Hình 32. Giao diện quản lý người dùng ... 47

Hình 33. Giao diện quản lý bình luận ... 48

Hình 34. Giao diện cài đặt tài khoản ... 49

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

LỜI CẢM ƠN

Trong suốt q trình làm khóa luận tốt nghiệp của mình, tơi ln đươc sự quan tâm giúp đỡ tận tình đến từ thầy giáo TS. Huỳnh Tấn Khải, chính sự giúp đỡ tận tình ấy đã giúp tơi hồn thành tốt khóa luận này. Tơi xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy!

Tôi xin chân thành cảm ơn quý thầy giáo, cô giáo khoa Công nghệ thông tin, trường Đại học Quảng Nam đã tận tình dìu dắt và truyền đạt kiến thức cho tôi trong suốt 4 năm học vừa qua. Với vốn kiến thức được tiếp thu trong quá trình học khơng chỉ là nền tảng cho q trình nghiên cứu khóa luận mà cịn là hành trang qúy báu để tôi bước vào đời một cách vững chắc và tự tin.

Xin chân thành cảm ơn gia đình, bạn bè đã là chỗ dựa vững chắc, giúp tơi tự tin hơn trong q trình học tập.

Trong q trình làm bài khóa luận tốt nghiệp này do trình độ cịn hạn hẹp, đề tài rộng, thời gian có hạn, khó tránh khỏi sai sót, kính mong q thầy cơ giáo góp ý kiến để tơi có thể học hỏi thêm nhiều kinh nghiệm.

Xin chân thành cảm ơn!

Tam Kỳ, ngày 8 tháng 5 năm 2019 Nguyễn Thị Thu

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Phần 1: MỞ ĐẦU

1. Lí do chọn đề tài

Ngày nay, cùng với sự tăng trưởng vượt bậc của nền kinh tế thì công nghệ thông tin và mạng xã hội cũng phát triển không ngừng. Công nghệ thông tin được ứng dụng rộng rãi trong mọi mặt đời sống xã hội, từ các lĩnh vực kinh tế, chính trị, văn hóa xã hội, tạo tiền đề cho sự phát triển về mọi mặt của đất nước. Công nghệ thơng tin và mạng xã hội có ý nghĩa đặc biệt đối với nền kinh tế, thúc đẩy sự phát triển mạnh mẽ của thương mại điện tử.

Với tình hình phát triển như hiện nay thì bất kỳ một cơ quan, tổ chức hay cá nhân nào cũng muốn quảng bá thương hiệu của mình đến mọi người một cách nhanh chóng và hiệu quả nhất. Chính vì vậy việc áp dụng công nghệ thông tin và mạng xã hội vào hoạt động kinh doanh của mình là một trong những yêu cầu cấp bách hiện nay.

Mạng xã hội Facebook là một trong những công cụ để người dùng có thể quảng bá thương hiệu một cách nhanh chóng và hiệu quả. Facebook hiện đang là mạng xã hội có người dùng cao nhất thế giới với khoảng 3,3 tỷ người dùng, Việt Nam chúng ta là một trong những nước có người dùng Facebook lớn hàng đầu thế giới với gần 60 triệu người. Vì vậy việc tận dụng các tài nguyên sẵn có trên Facebook mang đến một số thuận lợi nhất định như người dùng có thể đặt sản phẩm mình muốn mua chỉ bằng một cái kích chuột, doanh nghiệp có thể tiếp cận với khách hàng tiềm năng một cách dễ dàng thông qua các diễn đàn, hội, nhóm. Tuy nhiên cùng với đó, việc đăng bài trên các diễn đàn, hội, nhóm thường tốn nhiều thời gian của người dùng, các nội dung thường lặp đi lặp lại, thường bỏ qua các giờ vàng đăng tin vì quá bận rộn,...dẫn đến không thể tận dụng được tất cả những lợi ích và tiềm năng mà mạng xã hội đem lại cho mình. Như vậy chúng ta địi hỏi phải có một ứng dụng để thay thế con người, tự động thực hiện các thao tác trên Facebook như: tự động đăng bài lên các diễn đàn, tự động hẹn giờ đăng,... Chính vì vậy tơi quyết định chọn đề tài: “Ứng dụng Facebook Graph API vào việc xây dựng website tự động thực hiện các thao tác trên Facebook” làm đề tài khóa luận của mình.

2. Mục tiêu của đề tài

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

Đề tài tập trung nghiên cứu về Facebook Graph API từ đó xây dựng ứng dụng web tự động đăng bài trên Facebook thỏa mãn các điều kiện đưa ra, giúp tiết kiệm thời gian cho người sử dụng, khai thác hết những tính năng vượt trội từ mạng xã hội Facebook.

3. Đối tượng và phạm vi nghiên cứu

- Đối tượng nghiên cứu: Nghiên cứu về Facebook Graph API, những ưu điểm và hạn chế của nó, tìm hiểu về SDK từ đó xây dựng ứng dụng web tự động thực hiện các thao tác trên Facebook.

- Phạm vi nghiên cứu: Tìm hiểu Facebook Graph API và xây dựng ứng dụng web tự động thực hiện các thao tác trên Facebook thoải mãn các yêu cầu đặt ra.

4. Phương pháp nghiên cứu

- Phương pháp nghiên cứu lý thuyết:

+ Nghiên cứu tài liệu, ngôn ngữ và công nghệ liên quan. + Tổng hợp các tài liệu lý thuyết về Facebook Graph API. + Thu thập thông tin, nghiên cứu thực trạng.

+ Tham khảo sách, báo và các nguồn tài liệu từ Internet. + Tham khảo ý kiến từ giảng viên hướng dẫn đề tài. - Phương pháp nghiên cứu thực nghiệm:

+ Phân tích và thiết kế ứng dụng web tự động thực hiện các thao tác trên Facebook.

+ Xây dựng ứng dụng web.

+ Thử nghiệm hệ thống và đánh giá kết quả đạt được. 5. Đóng góp của đề tài

- Phần mềm giúp người sử dụng thực hiện các thao tác trên Facebook một cách nhanh chóng và hiệu quả

- Cung cấp một nền tảng kiến thức về Facebook Graph API và các ứng dụng của nó trên Facebook

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

- Với đề tài này tôi mong muốn cung cấp một tài liệu tham khảo cho các bạn sinh viên trong khoa cũng như ngoài khoa khi tiếp cận và tìm hiểu về Facebook Graph API, từ đó có thể xây dựng những ứng dụng web để giúp ích cho cuộc sống của con người.

6. Cấu trúc đề tài

Cấu trúc của bài khóa luận này bao gồm các phần: Lời cảm ơn, Mục lục, Phần mở đầu, Phần nội dung nghiên cứu, Phần kết luận và Phần tài liệu tham khảo. Trong đó phần Nội dung nghiên cứu sẽ gồm các nội dung chính như sau:

Chương 1: Cơ sở lý thuyết. Chương này sẽ nghiên cứu trình bày các nội dung về cơ sở lý thuyết làm nền tảng cho các phần nghiên cứu tiếp theo của đề tài.

Chương 2: Ứng dụng của Facebook Graph API vào việc xây dựng ứng dụng web tự động thực hiện các thao tác trên Facebook. Trong chương này chủ yếu tìm hiểu sâu sắc hơn về Facebook Graph API, sau đó phân tích và thiết kế ứng dụng web tự động thực hiện các thao tác trên Facebook.

Chương 3: Xây dựng ứng dụng web tự động thực hiện các thao tác trên Facebook. Chương cuối cùng xây dựng chức năng ứng dụng web tự động thực hiện các thao tác trên Facebook đồng thời giới thiệu một số giao diện chính của chương trình.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

Phần 2. NỘI DUNG NGHIÊN CỨU Chương 1. CƠ SỞ LÝ THUYẾT

1.1. Giới thiệu về Facebook

<i>1.1.1. Facebook là gì? </i>

Facebook là một website mạng xã hội phổ biến và hồn tồn miễn phí do cơng ty Facebok Inc điều hành và quản lý tư nhân. Người dùng có thể tham gia các mạng lưới được tổ chức theo thành phố, nơi làm việc, trường học và khu vực để liên kết và giao tiếp với người khác. Mọi người cũng có thể kết bạn và gửi tin nhắn cho nhau và cập nhật trang cá nhân của bản thân để thông báo cho bạn bè biết về chúng, tên của website nhắm tới những cuốn sổ lưu niệm dùng để lưu tên những thành viên trong cộng đồng campus của một số trường đại học tại Mỹ.

<i>1.1.2. Lịch sử phát triển </i>

Facebook mở đầu là một phiên bản Hot or Not của đại học Harvard với tên gọi Facemash. Mark Elliot Zuckerberg khi đang học năm thứ hai tại Harvard đã dựng nên Facemash vào ngày 28 tháng 10 năm 2003. Ngày 4 tháng 2 năm 2004, Zuckerberg thành lập “The Facebook”. Tên Facebook lấy ý tưởng từ những cuốn sổ có hình khn mặt của các sinh viên. Việc đăng ký thành viên ban đầu giới hạn chỉ là sinh viên của Harvard, trong một tháng đầu tiên, một nửa sinh viên đã đăng ký dịch vụ này. Sau đó nhanh chóng lang ra hết các trường đại học tại Mỹ. Facebook đã bỏ chữ “The” ra khỏi tên vào năm 2005. Tháng 5/2005, Facebook gây quỹ đầu tư được 13,7 triệu USD. Năm 2006, tính năng News Feed được tung ra, cho phép người dùng theo dõi hoạt động của nhau theo thời gian thực. Cuối năm 2010, Facebook có đến 1 tỷ lượt truy cập mỗi tháng. Năm 2014, tròn 10 năm Facebook ra đời, mạng xã hội có đến 1,23 tỷ lượt truy cập mỗi tháng, một tỷ trong số đó đến từ thiết bị di động. Để đáp ứng lượng người dùng khổng lồ, Facebook phải nâng cấp cơ sở hạ tầng và nhân lực. Trong năm 2016, công ty đã mở rộng thêm khuôn viên cho 2.800 nhân viên. Đến năm 2018 dù xảy ra một số sự cố về bảo mật thông tin khách hàng, tuy nhiên Facebook vẫn là một trong những trang mạng có ảnh hưởng nhất thế giới.

<i>1.1.3. Điểm mạnh và yếu của mạng xã hội Facebook </i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

- Ưu điểm

+ Là mạng xã hội phổ biến nhất hiện nay.

+ Có tính kết nối cao, chia sẻ cập nhật thông tin hằng ngày mà vẫn bảo mật được quyền riêng tư.

+ Ứng dụng được thiết kế khoa học, đẹp mắt, thao tác nhanh gọn, dễ dàng sử dụng, có nhiều phiên bản, hỗ trợ nhiều ngơn ngữ.

+ Có tích hợp nhiều ứng dụng như Game, Messenger,... mang lại tiện ích tối đa cho người sử dụng.

+ Không ngừng cải tiến, nâng cao chất lượng phục vụ. + Kết nối cộng đồng người sử dụng trên tồn thế giới.

+ Tính năng viết blog cho phép soạn thảo dễ dàng, nhanh gọn. - Nhược điểm

+ Người dùng không tùy chỉnh được giao diện trang web để có trang cho riêng mình.

+ Quản lí thơng tin chưa thật sự chặc chẽ, chưa kiểm soát được nguồn tin, còn tồn tại nhiều tin rác, tin sai sự thật.

+ Tạo ra nguồn dữ liệu lớn, khó quản lý nên thường bị thất thốt thơng tin. 1.2. Giới thiệu về Facebook Graph API

<i>1.2.1. Facebook Graph API là gì? </i>

Facebook Graph API là giải pháp để các ứng dụng có thể đọc và ghi vào đồ thị xã hội của Facebook. Tất cả các SDK và các sản phẩm có thể tác động tới Graph API theo một cách nào đó và các API khác là các tiện ích mở rộng của Graph API.

Graph API đặt tên theo ý tưởng của một “đồ thị xã hội”. Đại diện của các thông tin trên Facebook bao gồm:

- Nodes: Về cơ bản là các đối tượng riêng lẻ, chẳng hạn như: người sử dụng, hình ảnh, trang, bình luận.

- Edges: là kết nối giữa các bộ sưu tập, các đối tượng và một đối tượng duy nhất ví dụ như ảnh trên một trang hoặc bình luận trên tấm ảnh.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

- Field: là các dữ liệu về một đối tượng chẳng hạn như ngày sinh của một người nào đó, tấm ảnh trên một trang.

Thơng thường, chúng ta sử dụng các nodes để lấy dữ liệu cụ thể về một đối tượng, sử dụng các edges để thu thập các mục đích của đối tượng, sử dụng các field để lấy dữ liệu trên một đối tượng hoặc của mỗi một đối tượng trên trang.

<i>1.2.2. Facebook Graph API là việc như thế nào? </i>

Graph API hoạt động dựa trên HTTP, vì vậy nó có thể làm việc với bất kỳ ngơn ngữ nào có thư viện HTTP chẳng hạn như cURL và urllib. Chúng ta có thể sử dụng trực tiếp Graph API trên trình duyệt của mình.

Graph API là giải pháp cơ bản để lấy ra và đưa dữ liệu vào các thư viện của Facebook. Đó là một API HTTP-based cấp thấp có thể sử dụng để đăng các bức ảnh và hàng loạt các thao tác khác mà một ứng dụng cần phải có. Open Graph của Facebook cho phép định nghĩa các đối tượng và hành động mới trong mạng xã hội của những người sử dụng ứng dụng, cho phép tạo các đối tượng mới của những action và object đó thơng qua Graph API.

Graph API cũng là một phương tiện được sử dụng bởi iOS, Android, PHP và JavaScript SDK của Facebook. Nó được sử dụng bởi nhiều bộ cơng cụ của bên thứ ba với nhiều ngôn ngữ khác.

<i>1.2.3. Ưu điểm và khuyết điểm trong việc sử dụng Facebook Graph API </i>

+ Facebook có SDK Javascript riêng để tương tác với chính Graph API, tuy nhiên chỉ cho Javascript phía client. Khơng có SDK Node.js!

+ Mặc dù có một số package cho phép làm việc với Graph API của Facebook, tuy nhiên chúng vẫn chưa đủ hoàn thiện như các API cho các nền tảng mạng xã hội khác như Twit cho Twiter API.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

+ Các ứng dụng Graph API thường lấy dữ liệu của người dùng, vì vậy việc thất thoát dữ liệu rất cần được quan tâm.

1.3. Giới thiệu về Facebook Login

Facebook Login rất nhanh là tiện lợi, mọi người có thể tạo tài khoản và đăng nhập vào trong ứng dụng trên nhiều nền tảng khác nhau. Chúng ta có thể dùng trên IOS, Android, Web, Windows Phone,.vv.. Facebook Login cho phép 2 kịch bản, xác thực và yêu cầu quyền truy cập dữ liệu của mọi người. Chúng ta có thể chỉ sử dụng Facebook Login chỉ để xác thực hoặc cho cả xác thực và truy cập dữ liệu.

- Facebook Login được sử dụng các trường hợp sau + Tạo tài khoản

Facebook Login cho phép mọi người có thể tạo tài khoản trong ứng dụng một cách dễ dàng và nhanh chóng mà khơng cần phải đặt mật khẩu. Khi đã tạo tài khoản trên một nền tảng nào đó, chúng ta có thể đăng nhập bằng một cái nhấp chuột duy nhất, đem lại sự thuận tiện tối đa cho người sử dụng.

+ Cá nhân hóa

Facebook Login cho phép người dùng có thể truy cập các thơng tin phức tạp thông qua nội dung đã đăng ký trước như: tên người dùng, mật khẩu,.vv.

+ Xã hội

Ứng dụng cho phép người dùng có thể kết nối bạn bè của họ với nhau, cho phép họ có thể trải nghiệm trong ứng dụng được chia sẻ.

- Tính năng, đặc điểm của Facebook Login + Đăng nhập nền tảng chéo

Facebook Login có sẵn trên các nền tảng ứng dụng dành cho thiết bị di động và máy tính để bàn phổ biến nhất. Những người tạo tài khoản với Facebook trên một nền tảng có thể nhanh chóng và dễ dàng đăng nhập vào ứng dụng trên một nền tảng khác. Một người cấp một User ID, họ có thể trải nghiệm các tính năng của ứng dụng của chúng ta ở tất cả mọi nơi mà họ đến. Facebook Login có sẵn trên các hệ điều hành như Android, Web và Windows Phone cho các ứng dụng dành cho máy tính để bàn và cho các thiết bị như Smart TV và Internet of Things.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

+ Quyền chi tiết

Facebook Login hỗ trợ các quyền hạn xác định thông tin mọi người chọn chia sẻ với ứng dụng của chúng ta. Điều này có nghĩa là chúng ta có quyền kiểm sốt chính xác những gì chúng ta yêu cầu và mọi người có quyền kiểm sốt những gì họ chọn để phê duyệt.

+ Mọi người có quyền kiểm sốt đối với những gì họ chia sẻ

Với Facebook Login mọi người có thể chọn thơng tin họ chia sẻ với ứng dụng của chúng ta. Họ có thể nhận được lợi ích khi đăng nhập bằng Facebook mặc dù điều đó làm người dùng khơng thoải mái khi phải cung cấp một số thông tin nhất định.

+ Nhận dạng thực

Khi mọi người chọn đăng nhập bằng Facebook, họ có thể chia sẻ danh tính thực của mình thơng qua trang cá nhân công khai của họ. Trang cá nhân công khai bao gồm tên thực, ảnh đại diện của một người. Các ứng dụng dựa trên danh tính

<i>thực thường có ít spam hơn và tạo điều kiện thuận lợi cho các cuộc trị chuyện có </i>

chất lượng cao hơn.

+ Hoạt động cùng với hệ thống tài khoản có sẵn

Đăng nhập Facebook bổ sung cho hệ thống tài khoản có sẵn của người dùng. Mang lại cho mọi người tùy chọn đăng nhập bằng Facebook cùng với email, tin nhắn hoặc các lựa chọn đăng nhập xã hội khác. Nếu địa chỉ email nhận được từ tính năng đăng nhập Facebook khớp với địa chỉ đã có trong hệ thống, chúng ta có thể đăng nhập người đó vào tài khoản hiện có của họ mà không cần phải thêm mật khẩu.

+ Ủy quyền từng bước

Facebook Login hỗ trợ ủy quyền từng bước, chúng ta không cần phải yêu cầu trước tất cả những gì mình muốn mà có thể yêu cầu theo thời gian. Điều này có nghĩa là mọi người có thể tạo tài khoản trong ứng dụng của mình một cách nhanh chóng và dễ dàng, và khi trải nghiệm của họ với ứng dụng nhiều hơn, chúng ta có thể yêu cầu thêm thông tin để nâng cao trải nghiệm.

1.4. Giới thiệu về SDK

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<i>1.4.1. Facebook SDK cho Javascript </i>

SDK Javascript là một nhóm gồm nhiều chức năng phía máy khách để thêm lệnh gọi Social Plugins, Facebook Login và Graph API, ... Facebook SDK cho Javascript cung cấp một cách phong phú các chức năng phía máy khách như:

- Cho phép sử dụng các nút thích và các thư viện của Facebook trên trang web. - Cho phép sử dụng tính năng Facebook Login để đăng nhập hoặc đăng ký

thành viên trên trang web.

- Giúp dễ dàng gọi vào Graph API của Facebook.

- Khởi chạy hộp thoại cho phép mọi người có thể thực hiện các hành động khác nhau như chia sẻ tin.

- Hỗ trợ hoạt động giao tiếp khi chúng ta phát triển ứng dụng.

Facebook SDK cho JavaScript khơng có bất kỳ tệp độc lập nào cần được tải xuống hoặc cài đặt, thay vào đó chỉ cần đưa một đoạn JavaScript thông thường vào HTML sẽ tải SDK không đồng bộ vào các trang.

<i>1.4.2. Facebook SDK cho PHP </i>

Facebook SDK cho PHP là một thư viện với các tính năng mạnh mẽ cho phép các nhà phát triển PHP dễ dàng tích hợp đăng nhập Facebook và đưa ra các yêu cầu tới Graph API. Giúp dễ dàng để tải lên hình ảnh, video và gửi yêu cầu hàng loạt đến Graph API. SDK cho PHP có nhiều điểm mở rộng giúp các nhà phát triển PHP có tồn quyền kiểm soát cách SDK dành cho PHP tương tác với môi trường lưu trữ và khung web cụ thể của họ.

1.5. Tổng quan về ngơn ngữ PHP và mơ hình MVC

<i>1.5.1. Giới thiệu về ngôn ngữ PHP </i>

PHP (viết tắt hồi quy “PHP: Hypertext Preprocessor”) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng qt. Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML. Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và rút ngắn thời gian xây dựng sản phẩm.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Để sử dụng mã PHP vào việc lập trình web, chúng ta phải đặt mã PHP vào cặp thẻ <?php và ?> thì chương trình mới hiểu và biên dịch mã đúng. Đây là một điểm khá tiện lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện.

Ngơn ngữ lập trình PHP là một loại ngôn ngữ đặc biệt được thiết kế để giúp các lập trình viên có thể dễ dàng tạo ra các trang website. Ngơn ngữ lập trình PHP bao gồm các quy tắc mà các lập trình viên cần tuân theo khi viết các mã lệnh:

- Mã lệnh của chương trình cần được đặt trong cặp thẻ <?php ?>. - Sử dụng dấu chấm phẩy “;” để kết thúc một câu lệnh.

- Văn bản cần được đặt trong cặp dấu nháy đơn ' ' hoặc cặp dấu nháy kép " " Tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngơn ngữ lập trình web phổ biến nhất thế giới. Ví dụ đoạn code php: + Ln được cải tiến và cập nhật

+ Có nhiều hướng dẫn sử dụng trên mạng + Hoàn toàn miễn phí

+ Có thể thực thi trên bất cứ hệ điều hành nào

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

+ Không chỉ làm việc với html mà còn làm việc được với hình ảnh, PDF, Flash movie,...

+ Có thể dễ dàng kết nối với các cơ sở dũ liệu như: mySQL, mSQL, FrontBase, dBase, Solid, ODBC, Oracle, FilePro,...

+ Được sử dụng để xây dựng các framework lớn như: Joomla, Drupal, Zend,...

+ Có nhiều editor hỗ trợ: PHPDesigner, DreamWeaver,...

<i>1.5.2. Giới thiệu mơ hình MVC </i>

Mơ hình MVC là mơ hình được sử dụng rộng rãi nhất trong việc phát triển ứng dụng web. Được đưa ra bởi các nhà nghiên cứu tại phịng thí nghiệm Xerox PARC Palo Alto, dựa trên ngôn ngữ lập trình Smalltalk, cơng bố vào cuối những năm 1970.

Kiến trúc này ngày càng được phát triển và hoàn thiện nhằm giải quyết các vấn đề phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm. Vì vậy, lần lượt các MVC framework ra đời, trong lĩnh vực phát triển Web với ngôn ngữ PHP, chúng ta có các framework như Laravel, CodeIgniter, Zend, …

MVC (Model – View – Controller) là một mơ hình thiết kế theo hướng đối tượng, cho phép lập trình viên có thể chia nhỏ code của mình ra thành 3 phần là: Model, View và Controller.

- Model: làm việc với dữ liệu và thực hiện các xử lý nghiệp vụ.

- View: hiển thị dữ liệu và các thành phần trong giao diện người dùng.

- Controller: điều khiển các sự kiện của người dùng có ảnh hướng đến Model và View

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i>Hình 1: Mơ hình MVC </i>

- Ưu điểm của mơ hình MVC:

+ Phát triển phần mềm: chun nghiệp hóa, có thể chia cơng việc cho nhiều nhóm chun mơn khác nhau: nhóm thiết kế, nhóm lập trình, nhóm tổ chức CSDL, … Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp.

+ Bảo trì: Với các lớp được phân chia, các thành phần của hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó mà khơng ảnh hưởng đến cả chương trình.

+ Mở rộng: Việc thêm chức năng vào cho từng lớp sẽ dễ dàng và thuận tiện hơn cho người sử dụng.

- Nhược điểm:

+ Thích hợp với dự án vừa và lớn, cịn đối với dự án nhỏ thì việc áp dụng mơ hình MVC sẽ gây cồng kềnh, tốn thời gian phân chia.

+ Tốn thời gian trung chuyển dữ liệu giữa các lớp - Lý do nên làm việc theo mơ hình MVC:

+ Vì mơ hình MVC chia ứng dụng thành 3 lớp là View, Controller, Model nên có thể ra nhiều view và nhiều controller cho các model mà không phải

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

đối mặt với việc thay đổi trong thiết kế Model nên giúp việc duy trì, di chuyển và tổ chức ứng dụng dễ dàng hơn.

+ Cho phép sửa đổi mà không ảnh hưởng nhiều đến các thành phần khác. + Cho phép làm việc nhóm trở nên dễ dàng hơn vì nhóm nào chỉ lo phần việc

của nhóm đó - Xây dựng Model:

+ Thường thì chúng ta nên xây dựng Model trước bởi vì Model phục vụ như là nền tảng dữ liệu cho toàn bộ ứng dụng web.

+ Nhiều chức năng của Controller phụ thuộc vào Model.

+ Trong Model sẽ có các phương thức xử lý liên quan đến dữ liệu: xử lý trực tiếp hoặc lấy dữ liệu từ CSDL.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<small> foreach($books as $title => $book){ </small>

<small> echo “<tr><td><a href=index.php?book=” . $book->title . “>” . $book->title. “</a></td><td>” . $book->author. “</td></tr>”; } </small>

<small> ?> </table> </small>

- Xây dựng Controller:

+ Controller được xem là cơ bắp của ứng dụng.

+ Mọi thứ mà người dùng có thể thực hiện trên trang web đều được thể hiện

<small>public function __constructor(){ $this->model = new BookModel();} public function invoke(){ </small>

<i>1.5.3. Giới thiệu về MySQL </i>

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

CSDL trên internet. MySQL miễn phí hồn tồn cho nên chúng ta có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux,..v.v.

MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngơn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl.

- MySql có những đặc điểm nổi bật sau:

+ Tốc độ: MySQL rất nhanh. Những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà chúng ta có thể có.

+ Dễ sử dụng: MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản và ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn.

+ Giá thành: MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức.

+ Hỗ trợ ngôn ngữ truy vấn: MySQL hiểu SQL, là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại. Chúng ta cũng có thể truy cập MySQL bằng cách sử dụng các ứng dụng mà hỗ trợ ODBC (Open Database Connectivity -một giao thức giao tiếp cơ sở dữ liệu được phát triển bởi Microsoft).

+ Năng lực: Nhiều client có thể truy cập đến server trong cùng một thời gian. Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời. Chúng ta có thể truy cập MySQL tương tác với sử dụng một vài giao diện để chúng ta có thể đưa vào các truy vấn và xem các kết quả: các dòng yêu cầu của khách hàng, các trình duyệt Web…

+ Kết nối và bảo mật: MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó chúng ta có thể chia sẻ dữ liệu của mình với bất kỳ ai, bất kỳ nơi nào. Nhưng MySQL kiểm soát quyền truy cập cho nên người mà khơng nên nhìn thấy dữ liệu của chúng ta thì khơng thể nhìn được.

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

+ Tính linh động: MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2. MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server.

+ Sự phân phối rộng: MySQL là một mã nguồn mở và lập trình viên có thể thay đổi code nếu thấy cần thiết.

+ Sự hỗ trợ: Chúng ta có thể tìm thấy các tài ngun có sẵn mà MySQL hỗ trợ. Cộng đồng MySQL rất có trách nhiệm. Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút. Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục trong vài ngày, thậm chí có khi trong vài giờ và ngay lập tức cách khắc phục đó sẻ có ở trên Internet để người sử dụng có thể tìm kiếm.

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Chương 2. PHÂN TÍCH THIẾT KẾ WEBSITE TỰ ĐỘNG THỰC HIỆN CÁC THAO TÁC ĐĂNG BÀI, BÌNH LUẬN TRÊN FACEBOOK

2.1. Tìm hiểu chung về ứng dụng web tự động thực hiện các thao tác trên Facebook

<i>2.1.1. Mô tả bài toán </i>

Một doanh nghiệp kinh doanh các mặt hàng thời trang trên nền tảng mạng xã hội Facebook. Mỗi ngày doanh nghiệp phải đăng hàng loạt sản phẩm lên trang fanpage của doanh nghiệp, các nhóm trong Facebook và chính trang cá nhân của chủ doanh nghiệp. Một bài đăng khi đăng lên Facebook có thể có nội dung sản phẩm muốn bán, giá cả, hình ảnh của sản phẩm, các video đính kèm, nhúng các đường link quảng cáo sản phẩm do người dùng tự tạo. Một bài đăng có thể được đăng cùng lúc lên nhiều nhóm và nhiều fanpage mà tài khoản của người dùng là thành viên, và có thể đăng lên chính trang cá nhân của chính người dùng, có thể quy định thời gian cách nhau giữa các bài đăng, người dùng có thể xem bài viết đã được đăng lên Facebook. Người dùng có thể lưu các bài viết để thuận tiện cho việc đăng bài. Ngồi ra người dùng có thể lên lịch tự động đăng bài cho các bài viết đã được lưu trữ, và quy định trạng thái bài viết có được phép đăng hay khơng. Bên cạnh đó, chúng ta có thể tự động bình luận bài đăng để tăng lượt tương tác trên Facebook, giúp sản phẩm tiếp cận tối đa người dùng. Các bình luận được người dùng tự thêm và lưu trữ để dễ dàng sử dụng, và dễ dàng xóa đi khi khơng dùng đến. Admin có thể thêm tài khoản người dùng mới, quy định trạng thái hoạt động của tài khoản, có thể xóa các tài khoản người dùng nếu muốn, người dùng có thể đăng nhập để kết nối với Facebook cá nhân của mình..v.v. Bên cạnh các chức năng nói trên, người sử dụng có thể cài đặt trang web của mình để sử dụng một cách tối ưu nhất. Có thể cài đặt chung cho cả hệ thống như: cài đặt ngôn ngữ và cài đặt múi giờ; cài đặt thời gian đăng bài; cài đặt tài khoản Facebook như: chỉnh sửa thông tin tài khoản, xóa tài khoản và cập nhật mới tài khoản,.vv... ngồi ra người dùng có thể cập nhật website của mình.

<i>2.1.2. Phân tích </i>

<i>a. Quản lý bài đăng </i>

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Chức năng này cho phép người sử dụng có thể quản lý được bài đăng của mình thông qua các hoạt động thêm bài đăng, sửa bài đăng, xóa bài đăng và lưu bài đăng để sử dụng khi cần thiết, ngồi ra trong q trình thêm bài đăng người dùng có thể hẹn lịch đăng bài. Người dùng có thể đăng bài chứa nội dung là chữ, hình ảnh, video và các liên kết, các biểu tượng cảm xúc trong bài viết của mình như một trang Facebook thực sự, có thể tùy chọn thời gian đăng các bài viết và các nhóm hoặc trang mà bài viết được đăng vào. Trong q trình đăng bài ta có thể biết được trạng thái của bài viết đó đã được đăng lên hay chưa, khi bài viết đã được đăng ta có thể xem bài viết thơng qua việc liên kết với ứng dụng Facebook thực sự.

<i>b. Quản lý lịch đăng bài </i>

Chức năng này cho phép người sử dụng có thể quản lý các bài đăng đã lên lịch của mình, có thể sửa nội dung bài đăng, xóa bài đăng ra khỏi danh sách, ta có thể xóa từng bài đăng hoặc có thể chọn nhiều bài đăng cùng lúc, đặt trạng thái cho bài đăng là đăng hay khơng, ngồi ra có thể tạo bình luận cho bài đăng và hẹn thời gian thực hiện tự động bình luận trên bài đăng. Ta có thể quy định thời gian bắt đầu và thời gian kết thúc của bình luận, ngồi ra có thể quy định tần suất và thời gian trễ của bình luận.

<i>c. Quản lý bình luận </i>

Chức năng này cho phép người sử dụng có thể thêm bình luận cho bài viết của mình, sửa bình luận, xóa bình luận.

<i>d. Quản lý người dùng </i>

Chức năng quản lý người dùng cho phép Admin có thể thêm người dùng sử dụng ứng dụng web, sửa thông tin người dùng hoặc có thể xóa tài khoản người dùng, chúng ta có thể xóa một tài khoản hoặc nhiều tài khoản trong cùng một lúc, cập nhật trạng thái của tài khoản người dùng được phép hoạt động hay không, xem chi tiết thông tin về tài khoản của người dùng. Ngồi ra admin cịn có thể tìm kiếm người dùng thơng qua tên hoặc loại tài khoản của họ.

<i>e. Cài đặt </i>

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

Chức năng cài đặt cho phép người sử dụng có thể cài đặt trang web theo ý muốn của mình. Mang lại sự tiện lợi cũng như nâng cao trải nghiệm hệ thống của người sử dụng. Hệ thống có các chức năng cài đặt sau:

- Cài đặt chung bao gồm: Cài đặt múi giờ, cài đặt ngôn ngữ, số lượng các bản ghi hiển thị

- Cài đặt tài khoản bao gồm: Cài đặt số lượng các nhóm và các trang đăng bài, chỉnh sửa thông tin tài khoản

- Cài đặt đăng bài bao gồm: Cài đặt thời gian đăng mặc định, các trạng thái - Chỉnh sửa hồ sơ tài khoản hiện hành như: số lượng các nhóm và các trang

đăng bài, chỉnh sửa thông tin người dùng.

- Cập nhật theo tài khoản Facebook của người dùng.

<i>2.1.3. Dự trù khả năng đạt được </i>

Sau khi xây dựng, hệ thống có thể tự động đăng bài lên các trang, nhóm và trang cá nhân của người dùng trêm Facebook và có thể thực hiện các thao tác hẹn giờ đăng bài và tự động thực hiện bình luận vào bài đăng. Người dùng có thể cài đặt trang web một cách dễ dàng. Từ đó có thể tiếp cận với nhiều khách hàng trên facebook và giúp cho hoạt động kinh doanh của doanh nghiệp thêm hiệu quả.

2.2. Xây dựng chức năng của ứng dụng

<i>2.2.1. Xác định Actor và vai trò của Actor trong hệ thống </i>

Người dùng: Quản lý đăng bài, Quản lý lịch đăng bài, Quản lý bình luận, Cài đặt hệ thống

Người dùng cần đăng nhập trước khi muốn vào hệ thống Nếu chưa có tài khoản, người dùng phải đăng ký tài khoản mới

Admin: Có chức năng đầy đủ của người dùng, ngồi ra Admin có thể quản lý người dùng

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

B1: Chọn chức năng đăng nhập vào hệ thống.

B2: Hệ thống hiển thị form đăng nhập và yêu cầu nhập usename và password. B3: Người dùng nhập usename và password sau đó nhấn đăng nhập.

B4: Hệ thống kiểm tra thông tin người dùng nhập và xác nhận thông tin hợp lệ. B5: Hệ thống thông báo đăng nhập thành cơng

B6: Người dùng thốt khỏi chức năng đăng nhập.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

Ri:

R1.1: Khởi động hệ thống.

R1.2: Chọn chức năng đăng nhập.

R1.3: Nhập user và password vào nhấn đăng nhập.

R1.4: Cơ sở dữ liệu kiểm tra thông tin đăng nhập hợp lệ hay không R1.4.1: Nếu thông tin đúng, hệ thống thông báo đăng nhập thành công R1.4.2: Nếu sai, hệ thông báo đăng nhập lỗi và yêu cầu nhập lại. R1.5: Quản lý làm việc với hệ thống.

 Quản lí bài đăng:

Tác nhân: Người dùng và Admin Mô tả:

B1: Người dùng đăng nhập vào hệ thống B2: Người dùng xem danh sách các bài đăng

B3: Cập nhật: Thêm bài đăng, sửa bài đăng, xóa bài đăng B4: Đăng xuất khỏi hệ thống

Ri:

R2.1: Người dùng khởi động hệ thống R2.2: Người dùng yêu cầu đăng nhập

R2.3: Người dùng nhập username và password

R2.4: Cơ sở dữ liệu kiểm tra thông tin đăng nhập có đúng hay khơng R2.4.1: Nếu thơng tin đăng nhập đúng, thông báo đăng nhập thành công R2.4.2: Nếu thông tin đăng nhập sai, hệ thống báo lỗi và yêu cầu nhập lại R2.5: Hiển thị hệ thống

R2.6: Quản lý giao diện sửa và làm việc R2.6.1: Nhập bài đăng mới

R2.6.2: Sửa bài đăng

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

R2.6.3: Xóa bài đăng

R2.7: Cơ sở dữ liệu lưu thông tin cập nhật R2.8: Hệ thống thông báo cập nhật thành công  Quản lí lịch đăng:

Tác nhân: Người dùng và Admin Mô tả:

B1: Người dùng đăng nhập vào hệ thống

B2: Người dùng xem danh sách các bài đăng đã lên lịch

B3: Cập nhật: Thêm lịch đăng, sửa lịch đăng, xóa lịch đăng, trạng thái bài đăng B4: Đăng xuất khỏi hệ thống

Ri:

R3.1: Người dùng khởi động hệ thống R3.2: Người dùng yêu cầu đăng nhập

R3.3: Người dùng nhập username và password

R3.4: Cơ sở dữ liệu kiểm tra thơng tin đăng nhập có đúng hay không R3.4.1: Nếu thông tin đăng nhập đúng, thông báo đăng nhập thành công R3.4.2: Nếu thông tin đăng nhập sai, hệ thống báo lỗi và yêu cầu nhập lại R3.5: Hiển thị hệ thống

R3.6: Quản lý giao diện sửa và làm việc R3.6.1: Thêm lịch đăng bài

R3.6.2: Sửa lịch đăng R3.6.3: Xóa lịch đăng

R3.7: Cơ sở dữ liệu lưu thông tin cập nhật R3.8: Hệ thống thông báo cập nhật thành cơng  Quản lí bình luận:

Tác nhân: Người dùng và Admin

</div>

×