250 likes | 428 Views
Mã Nguồn Mở Tìm Hiểu Cách Viết ứng dụng facebook. Giáo viên hướng dẫn: Tạ Nguyễn Sinh viên thực hiên: Đinh Trung Hiếu MSSV:310000020 Lớp:10CT112. I.Giới Thiệu 1.ứng dụng facebook là gì ??.
E N D
Mã Nguồn MởTìm Hiểu Cách Viết ứng dụng facebook Giáo viên hướng dẫn: Tạ Nguyễn Sinh viên thực hiên: Đinh Trung Hiếu MSSV:310000020 Lớp:10CT112
I.GiớiThiệu1.ứng dụngfacebooklàgì?? Applications hay ngắnhơnlà Apps: làcácchươngtrìnhđượcthiếtkếđểtươngtácvớingườidùng Facebook . Thôngthườngchúnglàcácứngdụng web đượclậptrìnhbằngmộtsốngônngữlậptrìnhphổbiến, tuynhiênchúngcómộtđặcđiểmriêngđólàcóthểtươngtácvớicơsởdữliệucủa Facebook qua API (Application Programming Interface) đểtìmramộtsốthông tin nhưbạnbè, nhữngngườiđangsửdụngứngdụng…(tấtnhiênlàphảiđượcsựchophépcủabạn).
2.mục tiêucủaứngdụng: Điềumà Facebook quantâmnhấtlúcnàykhôngphảisốlượngngười dung nữamàlàchấtlượngcácứngdụng, cũngnhưlợinhuận.Facebookđangđầutưvàolĩnhvựcgiảitríđaphươngtiện. Đặcbiệtlàcungcấpthêmnhiềuứngdụngvềnghenhạcvàxem video. Mộtkhicácứngdụnggiảitrítrênmạngxãhộinàytăngvềmặtchấtlượngvàsốlượngthìcànghấpdẫnngườidùng. Chắcchắnrằngtrongtươnglainócũngsẽmanglạilợinhuậnkhôngnhỏcho Facebook.
3.lợi ích: • Kéolượt like Facebook, Fanpagecủabạnlêntừnggiây, từngphút. Qua đótăngkhảnăngtruyềntảithông tin củabạnđếnnhiềungườidùnghơnnữa. • Tạocáccuộcthi, sựkiện, bìnhchọn, bốcthămtrúngthưởngngaytrên Facebook. • Tạocácứngdụng Game trên Facebook, thuhútbạnbè Facebook trêntoànthếgiới
- Hàngtrămứngdụngtrênfacebookđangđược “ralò” mỗingàyđểphụcvụnhucầugiảitrícủakháchhàng. Nhưngchắcítngườibiếtrằng, bêncạnhchứcnănggiảitrí, còncómộtchứcnăngtuyệtvờikhác: kiếmtiền 3.ngôn ngữlậptrình: -php -javacript
A.ĐăngKí App với Facebook: • Trướctiênbạntruycậpvàođườngdẫnsau: https://developers.facebook.comĐâylàtrangdànhchocác developer của Facebook.
Mộtcửasổmớihiệnrađềnghịbạnnhậpthông tin khaibáovề App sẽtạocủamình.: Bạncầnkhaibáo: • Display name:têncủa App, cáinàytùybạn. • Namespace:phầnnàychínhlàđườngdẫnđến app củabạn. BạncầnchọnmộttênkhôngphảitiếngViệtvàduynhất.
Saukhinhấnnúttạoứngdụngthìfacebooksẽbắtchúng ta nhậpmãcapchavàođểxácnhận.
Saukhiviệcđăngkýhoàntất, bạncóthểcấuhìnhcho App củamình.
Click chọnứngdụngtrênfacebook.sẽhiệnlênnhững thong tin cơbảnsau: • Mãứngdụng:số ID củaứngdụng do FaceBooktựsinhra.Bạncóthểchẳngcầnnhớsố ID nàyvìcóthểlấy ID nàydễdàngbằngcáchvàođâymàxem. • App Secrect:đâylàmãứngdụngmàchỉcóngườiquảntrịhoặcđăngkýứngdụngmớicó. Mãnàygiúpchocácđoạnmãlậptrìnhsaunàycủabạn (bằng PHP, Javascript...) cóthểkếtnốivới Restful Service củaFaceBookđược. Nórấtcầnthiếtchoquátrìnhviếtứngdụngsaunày. Tuynhiên, do cóthểxemdễdàngnênbạnkhôngcầnphảinhớnó. • Emai lien hệ:địachỉ email FaceBookcóthểgửi email chobạnđểthôngbáovềtìnhhìnhứngdụnghoặccácphảnhồikhicầnthiết • App Domain:tênmiềnbạnsửdụngcho App. (khôngđiềncũngkhôngsao)
Phầnứngdụngtrên Facebook, cácbạncầnchú ý nhữngđiểmsau: • Canvas Page:nếuđể ý bạnsẽthấyđườngdẫnnàychínhlàđườngdẫnmặcđịnhcủaFaceBookkếthợpvớiphần App Namespace màbạnđãđiềntrướcđây. ĐâylàđườngdẫnđếnứngdụngcủabạntrênFaceBook. • Canvas URL: đườngdẫnnàykháquantrọng. Khimộtngườidùng click vàođườngdẫnCanvas Page, Facebook sẽgọimột Frame dựatrên URL bạnsẽkhaibáo ở phầnnàyđểlấynội dung. Bạncầnđiềnchínhxácđườngdẫnđếntrangmàngườidùngsẽthấykhitảiứngdụng.đường link đếnứngdụng.nằmtrên host. • Secure canvas URL:đâylàdạngđịnhdạngmãhóadữliệu SSL. Đểtảidữliệuứngdụnglên, FaceBookđòihỏidữliệuphảiđượcmãhóa. Do đó hosting củabạnphảicầnmở SSL. • Cavas Width: độrộngkhungứngdụng. • Cavas Height: độcaokhungứngdụng.
B.ViếtMộtỨngDụngBằng PHP: • Trướctiên, do việcxâydựng app củachúng ta dựatrênnềntảng PHP, chonênbạncầndownload bộ SDK củaFaceBookdựatrênnềntảng PHP. Chúng ta chépbộ SDK vàothưmụcchứaứngdụngcủachúng ta. • Cácbạnvàođịachỉnhưhình:
Saukhi click vào download the PHP SDK, ta sẽđược link tảibộ PHP SDK:
Saukhitảivêvàgiảinénthìcácbạnsẽcóđượcnhữngthưmụcvà files sau • Cácthưmục examples, src, tests chứacáchàmmàfacebookcungcấpsẵnchochúng ta, muốnsửdụngnó, chúng ta chỉcần copy vàdánvào file cấuhìnhứngdụng . • Việctiếptheo, ta cầntạomột file cótênindex.phpđểcấuhìnhđể SDK cóthểkếtnốivới Restful Service của Facebook. Nội dung file nàynhưsau
$config = array(); $config["appId"] = '123456789'; $config["secret"] = '123456789abc'; $config["fileUpload"] = false; // optional $config["cookie"] = true; // enable optional cookie support?>Trongtrongđoạn code trên, bạncầnthaylại$config["appId"]và$config["secret"]bằngcácchuỗikítựđược Facebook cungcấp.Tiếptheo, bạnviết file index.phpđểchạy app củamình. Hãybắtđầuvớiđoạn code sau:require_once("config.php"); require_once("src/facebook.php"); $facebook = new Facebook($config); ?>Nóimộtcáchđơngiảnvàdễhiểu, chúng ta đãcấuhìnhvàkếtnốivới SDK củaFaceBookthông qua object $facebook.Đểkiểmtrangườidùngđã "Like" ứngdụng hay chưa, bạncóthểsửdụngđoạn code sau:if($signed_request["page"]["liked"]!=1){ $is_liked = false; }else{ $is_liked = true; }
Nếubiến$is_likedtrảvề true nghĩalàngườidùngđã "Like" ứngdụng, bạncóthểđưahọđếnứngdụng. Ngượclạibạncóthểhiểnthịrathông tin đềnghịngườidùng “Like” ứngdụngLúcnày, chúng ta sẽcầnmộtcấutrúcif elseđểxửlývấnđềngườidùngđã like hay chưa. Tiếptheo, chúng ta sẽlấythông tin ngườidùngtừFaceBookđểphụcvụchomụcđíchcủamình. Bạncóthểlấyrấtnhiềuthứ, nhưngtrongbàinàymìnhchỉlấynhữngthông tin cơbảnthôi:$user = $facebook->getUser(); if ($user) { try { // Proceed knowing you have a logged in user who's authenticated. $user_profile = $facebook->api('/me'); } catch (FacebookApiException $e) { error_log($e); $user = null; }
$code = $_REQUEST["code"]; if(empty($code)) { $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $config["appId"] . "&redirect_uri=" . urlencode(CANVAS_PAGE) . "&state=" . $_SESSION['state']; echo("<script> top.location.href='" . $dialog_url . "'</script>"); } //get user access_token $token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $config["appId"] . '&redirect_uri=' . urlencode(CANVAS_PAGE) . '&client_secret=' . $config["secret"] . '&code=' . $code; $access_token = file_get_contents($token_url); $code = $_REQUEST["code"]; if(empty($code)) { $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection $dialog_url = "http://www.facebook.com/dialog/oauth?client_id=" . $config["appId"] . "&redirect_uri=" . urlencode(CANVAS_PAGE) . "&state=" . $_SESSION['state']; echo("<script> top.location.href='" . $dialog_url . "'</script>"); } //get user access_token $token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' . $config["appId"] . '&redirect_uri=' . urlencode(CANVAS_PAGE) . '&client_secret=' . $config["secret"] . '&code=' . $code; $access_token = file_get_contents($token_url);
// Run fql query $fql_query_url = 'https://graph.facebook.com/' . '/fql?q=SELECT+birthday+FROM+user+WHERE+uid=me()' . '&' . $access_token; $fql_query_result = file_get_contents($fql_query_url); $fql_query_obj = json_decode($fql_query_result, true); $birthday = $fql_query_obj["data"][0]["birthday"]; ?> <imgsrc="https://graph.facebook.com/<?php echo $user; ?>/picture"> <h3>Chào <strong><?=$outname . " " . $user_profile["name"];?></strong></h3> <div> <p>Ngàysinhcủabạnlà: <?=$birthday?></p> </div> <?php }else{ echo("<script> top.location.href='" . $facebook->getLoginUrl() . "&scope=user_birthday'</script>"); } // Run fql query $fql_query_url = 'https://graph.facebook.com/' . '/fql?q=SELECT+birthday+FROM+user+WHERE+uid=me()' . '&' . $access_token; $fql_query_result = file_get_contents($fql_query_url); $fql_query_obj = json_decode($fql_query_result, true); $birthday = $fql_query_obj["data"][0]["birthday"]; ?> <imgsrc="https://graph.facebook.com/<?php echo $user; ?>/picture"> <h3>Chào <strong><?=$outname . " " . $user_profile["name"];?></strong></h3> <div> <p>Ngàysinhcủabạnlà: <?=$birthday?></p> </div> <?php }else{ echo("<script> top.location.href='" . $facebook->getLoginUrl() . "&scope=user_birthday'</script>"); }