[Powered by Google Translate] [Seminar] [Hyrje një programues për TV] [Billy Janitsch] [Universiteti i Harvardit] [Tommy MacWilliam] [Kjo është CS50.] [CS50.TV] Hi, të gjithë, unë jam Billy, dhe sot unë jam duke shkuar për të folur në lidhje me TV, ose ndërfaqe e programimit të aplikacionit, veçanërisht në kontekstin e CS50 projekteve finale dhe atë gjë e tillë. Në përgjithësi ajo është një API? Në terma shumë të gjerë, kjo është lloj i një njeri të mesme që e lejon 2 copa software për të komunikuar me njëri-tjetrin. Kjo është një lloj përkufizimi shumë të gjerë dhe nuk është se e rëndësishme për atë që ne jemi duke kërkuar në. Ajo që ne të vërtetë duan është një lloj i tokës së mesme të dobishme për të komunikuar me një lloj të bazës së të dhënave diku. Këtu është një tabelë, dhe në thelb ideja është që ne jemi një kërkesë, dhe ne duam të marrë të dhëna nga një database, por ne nuk duam të query bazës së të dhënave direkt. Në vend të kësaj ne duam të kalojnë nëpër këtë lloj të njeriut mesme, API. Ideja prapa që është numrat 2 dhe 3 në tabelë janë të dyja do të jetë shumë e komplikuar dhe çrregullt. Me fjalë të tjera, kur është querying API bazën e të dhënave, ajo ndoshta do të jetë duke përdorur SQL tavolina dhe të gjitha atë lloj stuff, dhe ne kemi mësuar pak për atë në CS50, por në përgjithësi, ju keni vënë re se kjo është pak e një dhimbje. Ajo merr shumë, shumë e komplikuar dhe çrregullt, sidomos kur ju jeni duke e bërë pyetje komplekse dhe se gjë e tillë. Ajo që ne të vërtetë duan është një lloj i mënyrës së dobishme dhe të thjeshtë për të marrë që të dhënat dhe kjo është ideja prapa numrat 1 dhe 4 në tabelë. Me fjalë të tjera, ne duam një mënyrë me të vërtetë të thjeshtë për të treguar API çfarë për të marrë për ne dhe një mënyrë të vërtetë të thjeshtë për të marrë që të dhënat prapa. Nuk është një mënyrë kryesore që se të dhënat është dërguar dhe marrë zakonisht, cila është JSON, ose simbol JavaScript Object. Kjo mund të ndryshojë pak sa si ju dërgojë kërkesën API. Me fjalë të tjera, në qoftë se ju doni një sasi të caktuar të të dhënave, si ju tregoni API për të marrë që të dhënat mund të ndryshojnë pak. Zakonisht kjo përfshin të bërë një lloj të kërkesës rrjetit. Me fjalë të tjera, qasja në disa lloj URL që do të tregojë API pikërisht ajo që ju doni, por të dhënave është pothuajse gjithmonë kthehet, me fjalë të tjera, numri 4 në JSON. Çfarë është JSON saktësisht? Siç thashë, simbol JavaScript Object. Kjo është në thelb standarde universale për transmetimin dhe marrjen e të dhënave. Ideja është se ju keni këto 3 kategori të gjëra. Ju keni vargjeve, hashmaps dhe primitives. Vargjeve dhe hashmaps keni shikuar në një pak në CS50, por ju keni marrë një lloj ndjenjë shumë të rreptë të asaj që ata janë. Me fjalë të tjera, me të vargjeve ju e dini se ata janë të detyruar të tipit, kështu që ju keni vetëm një lloj të llojit që shkon nëpër rrjet të tërë. JSON është shumë më i butë me atë gjë e tillë. Në thelb ideja është që ju të ndërtuar këtë objekt, cili mund të jetë i përbërë nga ndonjë nga këto 3 gjëra dhe mund të përbëhet nga ato të shumta të tyre, dhe ata mund të mbivendosur. Lloj Ja një shembull i të JSON, e cila është këto kllapa kaçurrel këtu përfaqësojnë hashmap tuaj, dhe një hashmap është në thelb një hartë nga një lloj çelësi në një lloj të vlerës. Ju do të shihni këtu se ne kemi çelësin e pronave, dhe kjo është hartës mbi një grup, i cili është kjo gjë e tërë. Ne e shohim një tjetër element të hashmap, e cila është çelësi, kjo isAwesome të cilat harta në një vlerë primitive të vërtetë, me fjalë të tjera, një boolean. Primitives mund të jenë vargjet. Ata mund të jenë numra të plotë. Ata mund të jenë bools, diçka të tillë. Dhe ju të shihni përmbajtjen e kësaj grup që pronat pikë të ka 2 vargjet në të, vetë-ngjashëm dhe të mrekullueshme. Ata janë 2 prona e JSON, dhe ne shohim se JSON është awesome. Për të parë në se një pak më nga afër Unë jam duke shkuar për të ndërtuar një shembull më të ndërlikuar të JSON këtu. Le të fillojmë me një grup, për shembull, vetëm një koleksion bosh. Por kjo është lloj i mërzitshëm, kështu që ne jemi duke shkuar për të mbushur atë pak, dhe siç thashë, vargjeve në JSON janë shkruani lidhur, kështu që ne mund të kemi një varg këtu, e cila është e hi, dhe kjo është një tjetër element i kësaj grup. Dhe gjithashtu, ne mund të shtoni një hashmapping këtu, e cila do të ketë një mappings pak. Ajo do të ketë një hartë nga emri në Billy string. Ne kemi një hartë nga emri në Billy, dhe ne kemi një hartë të ngjyra e preferuar për të kaltër. Kjo është në thelb një shembull i mirë i JSON. Ai lloj i merr në-uh, nevojë për një presje atje-të gjitha pjesëve të ndryshme të saj. Përsëri, kjo nuk është lloji i detyruar në të gjitha, kështu që ju mund të ketë ndonjë lloj të llojeve të brenda çdo gjë që ju dëshironi, dhe ideja është e vetë-ngjashëm. Me fjalë të tjera, kjo e drejtë këtu është një objekt JSON, si është kjo gjë e tërë, si është vetëm kjo, kështu që ju mund të ketë një jetë primitive një objekt, një koleksion të jetë një objekt apo një hashmap të jetë një objekt. Si ju mund të lloj të shihni, JSON është me të vërtetë, të vërtetë të dobishme në atë që është kaq i gjithanshëm. Ju mund të keni ndonjë të dhëna të mundshme që ju mund të krijoj ruajtura në JSON. Kjo e bën atë një gjuhë të vërtetë e bukur për të përdorur me TV sepse kjo do të thotë pak a shumë se nuk ka rëndësi se çfarë të dhënat që ju dëshironi atje do të jetë një mënyrë për të marrë atë përsëri në JSON. Një disa prona që të bëjë JSON veçanërisht i mirë për këtë lloj gjë. Siç mund ta shikoni, në krahasim me një shumë gjëra që ju keni qenë duke punuar me të në CS50 ajo është relativisht shumë e lehtë për të lexuar dhe gjithashtu shumë e lehtë për të shkruar. Ju mund porosit atë në qoftë se ju dëshironi, si unë ishte duke bërë në këtë shembull, i cili ju jep një version të bukur, bukur që ju mund të shihni të vërtetë të mirë. Por për më tepër, ajo është gjithashtu e lehtë për të lexuar dhe shkruar për një kompjuter. Me fjalë të tjera, është e lehtë të kuptoj dhe të lehtë për të kodifikuar, që do të thotë se është shumë shpejt për aq sa leximi i të dhënave është i shqetësuar, dhe JSON mund të gjenerohet vërtetë shpejt. Është gjithashtu shumë e lehtë për të hyrë në pjesë të ndryshme të JSON dhe atë gjë e tillë. Kjo është e bukur, dhe për më tepër, fakti se ajo është vetë-ngjashëm, me fjalë të tjera, fakti se ju mund të keni JSON JSON brenda brenda JSON është me të vërtetë e bukur për magazinimin e të dhënave. Një pjesë tjetër që është në përgjithësi të vërtetë të dobishme për të punuar me TV është jQuery. Ju kam mësuar pak e JavaScript, e cila është një mënyrë bukur për të manipuluar HTML dhe CSS brenda një website. Por kjo mund të jetë lloj i një dhimbje për kodin në JavaScript të thjeshtë, kryesisht për shkak se JavaScript është një gjuhë me të vërtetë fjalëshumë. Ju duhet të mësoni një shumë të sintaksës, dhe vetëm për të bërë gjëra shumë të thjeshta ajo merr një shumë të kodit, kështu që jQuery është një bibliotekë për JavaScript. Me fjalë të tjera, kjo është një file JavaScript që ju mund të ngarkesës dhe pastaj të përdorin funksionet jQuery për të bërë gjëra të caktuara. JQuery dhe në thelb e bën jetën tuaj një tërësi shumë më e lehtë. Ajo thjeshton atë që do të marrë qindra e linjave në JavaScript poshtë për disa rreshta në jQuery. Kjo është veçanërisht e dobishme në qoftë se ju jeni duke përdorur API për shkak se në përgjithësi si ju do të jetë hyrë në TV është duke bërë kërkesa Ajax, dhe unë besoj se David ka përmendur në leksionin që kërkon AJAX përgjithësi janë kur ju jeni duke bërë një kërkesë e rrjetit në një lloj të serverit dhe duke u kthyer një lloj të të dhënave dhe përditësimin një faqe menjëherë. Ndërsa në JavaScript të thjeshtë që do të marrin numrat e çmendur e linjave për të vërtetuar të gjitha headers dhe të bëjë të gjithë këtë lloj të stuff, jQuery ka një funksion me të vërtetë të thjeshtë të quajtur AJAX, dhe të gjithë ju duhet të bëni në AJAX është dhënë parametrat që ju dëshironi për të dhënë API, vendndodhja e API dhe çdo lloj tjetër të opsioneve që ju doni të konfiguroni. Është me të vërtetë, me të vërtetë e bukur dhe shumë i dobishëm për këtë lloj gjë. Kjo është e gjitha ne kemi nevojë për të filluar marrjen e duart tona të pista në TV. Unë jam duke shkuar për të sjellë disa shembuj dhe eksploruar pronat e tyre të ndryshme dhe pse ata janë të dobishme për lloje të ndryshme të gjërave. Gjëja e parë që unë do të ju tregojnë se në fakt është diçka që unë jam duke punuar në në laborator time kërkimore, e cila është një Viewer Ngram, dhe në thelb idenë e një Viewer Ngram është që ju mund të kërkoni për një lloj të fjalës apo fraza dhe shikoni se si shpesh ajo u shfaq në një grup të caktuar të tekstit me kalimin e kohës. Ky shembull këtu është ky grup dhënat e foshnjave që janë lindur në Nju Jork midis 1920 dhe 2000. Ne mund të kërkoni, për shembull, për Jennifer emrin, dhe shohim se para-viteve 1960 me të vërtetë nuk është përdorur në të gjithë se shumë, dhe pastaj si ne të merrni në vitet e mëvonshme kjo është duke u përdorur gjithnjë e më shumë. Ne gjithashtu mund të bëjë krahasime, kështu që nëse ne krahasojmë Jennifer, për shembull, Thomas, ne mund të shohim Thomas ka qenë shumë i përhapur në të gjithë historinë, Jennifer ndërsa është një emër më të fundit. Ne mund të bëjmë këtë lloj gjë. Si e bën këtë punë kërkesë? Në thelb, ajo punon nëpërmjet një API. Me fjalë të tjera, ne kemi parametra të caktuara këtu. Ne kemi parametrat e asaj që ne jemi aktualisht në kërkim për të, cilat janë këto emra, dhe pastaj ne kemi disa pronave të tjera, si boshtin Y dhe boshtit x. Ju mund të shihni kemi disa opsione të ndryshme sa i përket Rezoluta koha për të përdorur dhe se gjë e tillë. Ne kemi këto opsione sa i përket asaj që ne të vërtetë duan të dhënave nga baza e të dhënave, dhe ne duam të marrë që të dhënat kthehet në një farë mënyrë e dobishme. Zakonisht, në qoftë se ne kemi qenë të querying bazën e të dhënave të drejtpërdrejtë se do të jetë një lloj dhimbje për të bërë sepse me sa duket këto të dhëna në lidhje me emrat e foshnjës jeton në një bazë të dhënash diku, dhe ajo do të jetë i komplikuar me të vërtetë që të ketë për të query atë me dorë dhe të vendosë saktësisht se çfarë të dhënave të kthehen. Me fjalë të tjera, ne vetëm kujdesen për Jennifer dhe Thomas në këtë rast, dhe ne vetëm kujdesen për në një aks të caktuar dhe të gjitha atë lloj stuff. Si nuk kemi marrë rreth kësaj? Të gërmoj në këtë API pak më shumë Unë do t'ju tregoj një shembull tjetër të kësaj platforme e cila përdor një grup pak më të ndryshme të të dhënave. Ky grup dhënave, në vend të të qenit emra baby, është në të vërtetë vetëm tërë bazës së të dhënave të shtypura publikimin e Bibliotekës Hapur, i cili është një burim gjigant i teksteve të botuara gjatë 100 apo më shumë viteve të fundit. Ideja është që ne kemi këtë compository e miliona dhe miliona të tekstit, të cilat ne tani mund të kërkoni për fjalë të ndryshme dhe frazat in Ja një shembull që ndryshon pak ndryshe nga shembulli i mëparshëm Unë ju tregoi, e cila është që ne kemi këto 3 pyetje e kërkimit, , lufta lufta, dhe fjala frëngjisht për luftë, e cila është Guerre. Dhe ne jemi në kërkim brenda 3 seksione të ndryshme të bazës së të dhënave të përgjithshëm. Me fjalë të tjera, në këtë pyetje e parë ne jemi vetëm në kërkim në SHBA, në një të dytë vetëm në Britani të Madhe, dhe i treti vetëm nga veprat e botuara në Francë. Ne shohim disa modele interesante dalin. Për shembull, ne shohim drejtë rreth këtu që- oops, unë messed up aksin pak, por ju mund të shihni të drejtë në këtë varg këtu rreth Luftës Civile ka një gozhdë të madhe në edicionin amerikan por nuk është e tillë një gozhdë të madhe në dy të tjera, dhe kjo është padyshim për shkak Lufta Civile Amerikane po ndodhte në atë pikë. Ne mund të shohim disa cool stuff atje, por ajo që ne me të vërtetë intereson është se si kemi marrë këto të dhëna. Unë do të ju merr prapa skenave në këtë app në një pak. Një mashtrim i zoti është në qoftë se ju jeni duke punuar me faqen dhe llojit të duan të dinë çfarë po ndodh prapa skenave, ju mund të hapur deri mjetet zhvilluesi i saj. Unë jam duke shkuar për të përdorur mjetet e kromit në zhvilluesi i saj, dhe për të marrë për ata që ju mund të bëni, ndryshim kontrollit, J, dhe që ju merr në tastierë JavaScript. Ka disa tabs këtu. Ata mund të jenë mjaft të dobishme në rrethana të ndryshme, por më intereson në lidhje me rrjetin e tab tani, dhe unë në të vërtetë kanë për të rifreskuar për të marrë atë të punës. Oh, më vjen keq. Ajo i pëlqen për të dhënë një shembull të rastit. Mirë, ne do të përdorim këtë shembull në vend atëherë. Ideja është se kjo API këtu, dhe ju mund të shikoni saktësisht çfarë API është kthyer. Kjo është ajo që aplikimi është duke u kthyer nga API ka dërguar këtë kërkesë. Më lejoni të zoom në një pak, dhe ne mund të shohim në thelb kjo është vetëm një seri e vlerës kryesore në çifte JSON. Me fjalë të tjera, ne kemi këtë hashmap këtu që është vlera hartë. Me fjalë të tjera, është e hartes vite për vlerat. Në 1765 çfarëdo fjala ne fillim kërkuar për të është përdorur 90 herë nga 1 milion, kështu që ne jemi duke u kthyer këtë rezultat. Kjo nuk është saktësisht JSON që ne kemi këtë rezultat header pak këtu, por vini re se ky objekt gjithë këtu është vetëm një pikë e madhe e madhe JSON. Ne kemi këtu një koleksion i cili përmban këtë element të tërë, dhe ju mund të shihni se element i tërë mbaron atje, dhe pastaj ne kemi një tjetër element i madh që shkon gjatë gjithë rrugës deri në fund, dhe se përfundon këtu. Ne kemi një koleksion të vërtetë të madhe me 2 objekte në të, dhe secili prej këtyre objekteve është një hashmap. Ju mund të shihni brenda secilit prej këtyre hashmaps ne kemi një hartë e këtë vlerë indeksi të 0 dhe vlerës kjo vlerë ndaj një tjetër hashmap, e cila përsëri është hartë vlerat aks X për aks vlerat y. Ju mund të shihni JSON merr pak e komplikuar, por në përgjithësi, kjo është në fakt shumë e dobishme, dhe kjo është shumë e lehtë për të hyrë në krahasim me forma të tjera të ndryshme të simbol. Sa i përket asaj që ne jemi aktualisht dërgimin e të dhënave në API për të marrë, Unë jam duke shkuar për të shkuar në fund kthehet pak këtu. Kjo është e madhe fotografi JavaScript që e trajtimit të të gjitha ndërveprimet e web app, dhe kështu që ne nuk e kujdesit për shumicën e këtë, por ne nuk kujdeset për disa prej tyre. Për shembull, ne lidhje me kujdes këtë funksion buildQuery, dhe ideja e këtij funksioni është në thelb ajo është në kërkim rreth e rrotull faqe, parafytyruar se çfarë përdoruesi dëshiron të query, me fjalë të tjera, kontrolluar ato kuti ku ata kanë input termat e tyre e kërkimit, kontrolluar Y ndryshme dhe boshtin X vlerat që ata kanë zgjedhur dhe të gjitha atë gjë e tillë, dhe ajo do të nxjerr nga goja këtë vlerë pyetje, të cilat unë pastaj mund të dërgojnë jashtë për të API. Kjo duket e komplikuar, dhe kjo është e komplikuar shumë por ajo që unë jam duke shkuar për të bërë-në fakt, unë tashmë jam duke bërë këtë, e cila është e madhe- është se unë jam duke shkuar për të marrë në tastierë për të shtypur saktësisht se vlera query se ai është dërguar për në API. Kjo është në fakt të drejtë këtu. Na vjen keq, ajo nxjerr shumë gjëra. Por kjo është ajo që kemi kujdes në lidhje me, këtë objekt të drejtë këtu. Ky është objekti query. Me fjalë të tjera, kjo është pikërisht ajo që aplikimi web është dërguar në API, dhe kështu që le të shohim brenda një pak, dhe ne shohim ne kemi një disa vlera këtu. Ne e shohim ne kemi këtë lloj numërimin, e cila është në dukuritë milion fjalë, e cila është pikërisht ajo që ne kemi zgjedhur në aksin Y këtu. Kjo është se ku po vijnë nga. Ne kemi një vlerë të bazës së të dhënave, që do të thotë se nuk ka ndonjë bazë të dhënash të sigurt që kjo të dhënave është duke jetuar në, dhe ne duam për të hyrë në të dhënat specifike që në krahasim me të dhënat e emrave baby, për shembull. Pastaj kemi këtë vlerë grupe, e cila është thënë se ne duam të kërkuar nga viti në krahasim me ndonjë tjetër aks X vlerë. Atëherë kemi një metodë, të cilën disa TV do të bëjë gjëra të shumta. Me fjalë të tjera, kjo mund të kthehet API lloje të tjera të të dhënave, por në këtë rast, ne duam që të hartë aks vlerave X në boshtin Y vlerave. Kjo është ajo që është thënë për të bërë atë atje, dhe ne kemi këtë koleksion limitet kërkimi, i cili përmban vlerat 2. E para është ajo që ne shohim këtu, e cila është e gjitha e vlerave përfshira në atë kutinë e parë të vogël në krye. Me fjalë të tjera, ne duam të shikojmë për betejën e fjalës, dhe ne duam të filtruar atë nga tekstet anglisht në kuadër të letërsisë amerikane. Ne kemi këtë vend, e cila është SHBA. Ne kemi një gjuhë, e cila është anglisht, kështu që ne kemi të gjitha këto pjesë të ndryshme që janë thënë të gjitha API pikërisht ajo që ne duam. Ne nuk e dimë se çfarë të dhënat që kemi marrë përsëri është ende, por ne e dimë se të dhënat do të marrë një formë të caktuar. Ky shembull është lloj i në anën e komplikuar, dhe ju nuk do domosdoshmërisht të jetë duke përdorur një API këtë kompleks, por kjo është për të ju tregojnë varg dhe fuqinë e asaj që mund të bëjnë TV. Me fjalë të tjera, duke përdorur një sistem relativisht i thjeshtë pyetje ne thelb kanë një kuti input me një selektorë disa të tjera në vende të ndryshme. Më lejoni të zoom prapa këtu. Ne kemi një kuti input me një zgjedhje disa metadata të ndryshme, dhe ne kemi boshtin Y aks dhe zgjedhje të x. Ne në fakt nuk kanë shumë fusha që, dhe ne mund të shohim shumë të lehtë, ne jemi në gjendje të query një lloj API dhe për të marrë të dhëna mbrapa dhe pastaj të vënë atë në këtë tabelë, cila pastaj do të shfaqë atë në një mënyrë të dobishme. Të shikojmë në një shembull tjetër që mund të jetë pak më e njohur për ju djema ne do të kthehet në Facebook. API Facebook quhet Grafiku Facebook, dhe në thelb do të thotë se çfarë është Facebook e sheh veten si këtë bazë të dhënash masiv të shumë pjesëve të ndryshme që të gjithë kanë marrëdhënie të caktuara për njëri-tjetrin. Me fjalë të tjera, unë jam një përdorues në Facebook, kështu që unë kam një profil, dhe unë gjithashtu kanë miq të caktuara, dhe secili prej tyre ka një profil, dhe secili nga miqtë e mi ka një mur, i cili ka komente të ndryshme mbi të, dhe secili prej këtyre komenteve ka pëlqen dhe të gjitha atë gjë e tillë. Ka shumë pjesë të ndryshme të Facebook. Kjo është një API jashtëzakonisht komplekse, dhe ka ton ju mund të bëni me të, por kjo është në fakt shumë e thjeshtë për t'u përdorur. Unë jam duke shkuar për të filluar duke shkuar në graph.facebook.com / billyjanitsch, i cili është emri unik Llogaria ime, dhe emri juaj do të jetë ose llogari një lloj i fjalës në qoftë se ju keni zgjedhur atë, ose ajo mund të jetë vetëm një varg të numrave. Ajo që ne të kthehemi është informacion shumë themelore. Ne shohim se unë kam një emër parë, e cila është Billy, një emër i fundit, i cili është Janitsch. Ka një ID unike Facebook që kam. Ju mund të shihni se unë jam mashkull dhe se kam ambient time gjuhë në British anglisht. Me fjalë të tjera, ne po shohim shumë informata themelore këtu. Kjo nuk është shumë, por kjo nuk na japin një ide të asaj që është atje. Ne mund të bëjmë të njëjtën gjë për David Malan, për shembull. Unë mendoj se emri i tij është dmalan. Ne e shohim David Malan ka një ID unike. Ai ka një emër, emri, emri i mesëm, mbiemri. Ne gjithashtu shohim se ai është mashkull dhe ka vendosur të tij në gjuhën angleze në SHBA. Me fjalë të tjera, ne po shohim informacion mjaft themelore këtu. Tani, çfarë ndodh nëse ne përpiqemi për të kontrolluar nga diçka tjetër? Le të thonë se unë jam i interesuar në atë që Davidi Malan ka pëlqyer në Facebook. Unë mund të bëj / i pëlqen. Tani ne kemi drejtuar në një problem. Ne kemi marrë disa lloj të gabimit që thotë një shenjë qasje është e nevojshme për të kërkuar këtë informacion. Por në qoftë se ju mendoni rreth saj, që në fakt ka kuptim, sepse kjo do të jetë e pazakontë në qoftë se ju mund të hyni në çdo pjesë të vetme të bazës së të dhënave Facebook vetëm nga disa lloj API të thjeshtë, apo jo? Me fjalë të tjera, me sa duket informacioni juaj nuk mund të arrihen nga çdokush që dëshiron atë. Ky gabim është pikërisht ajo që do të thotë. Disa TV kërkojnë leje të caktuara, në mënyrë për të hyrë në të dhënat e tyre. Dhe TV edhe më të avancuar, si Facebook një, do të kërkojë leje për të bërë disa gjëra të caktuara. Unë mund të shoh këtë informacion bazë për David Malan. Unë mund të shoh se ai është mashkull dhe se ai jeton në SHBA, por unë nuk mund të vërtetë shoh ndonjë gjë që e kaluara. Për të marrë rreth kësaj tani për tani, Facebook ka këtë mjet bukur cila është grafik API eksplorues, dhe ideja e që është ju mund të lloj i përbëjnë lejet për veten tuaj bazuar në llogarinë tuaj dhe pastaj shikoni gjëra që në mënyrë specifike llogaria juaj mund të shikoni. Për shembull, në qoftë se unë bëj graph.facebook.com/billyjanitsch/likes- uh, I guess I duhet të revalidate shenjë time këtu. Rregull. Nëse unë bëjë që përsëri, e madhe, tani e shoh që kam marrë këtë objekt mbrapa i cili thotë se unë si petë pishinë, të cilat janë në kategorinë Lojra dhe lodra. I like walruses, të cilat janë në Animal kategorisë. Këto janë aktuale pëlqen ime Facebook. Ata janë lloj i turpshme. Por ne mund të shohim këto të dhëna është kthyer të gjithë në JSON. Kjo është goxha e lexueshme. Me fjalë të tjera, ne kemi këtë hartë të dhënave për një lloj të një grup, dhe çdo element i këtij grup është një hashmap cila harta emri i një si dhe kategoria e një si. Secili si ka një ID unike. Nuk janë të gjitha llojet e gjërave të ndryshme të të dhënave që ne mund të merrni, dhe në qoftë se ju jeni të interesuar në përdorimin e API Facebook për një projekt përfundimtar CS50 ose për ndonjë gjë si kjo është e vërtetë mjaft e mundur. Në thelb se si ju merrni rreth gjë është authentication Facebook përdor një sistem të quajtur OAuth, ose Authentication Hapur, dhe unë nuk doni të merrni në të tani sepse OAuth ose lloj tjetër e vërtetimit tenton të ndryshojnë shumë në mes të TV të ndryshme, kështu që unë mund të kalojnë një kohë të gjatë do mbi çdo një, por ata janë në fakt shumë vetë-shpjeguese. Nëse ju Google API Facebook është shumë i lexueshëm. Ka një spekulim të tërë. Për shembull, kjo është dokumentacioni për API Facebook, dhe ju mund të shihni unë jam në faqe, kështu që unë mund të mësojnë të gjithë në lidhje me llojet e ndryshme të gjërave që janë në dispozicion për të marrë të dhëna përsa i përket dhe gjithashtu lejet e ndryshme që kam nevojë, në mënyrë për të hyrë në to. Siç e pamë, ne nuk kemi nevojë lejet për të hyrë në emrin apo gjininë, por përtej kësaj ne kemi nevojë për leje për gjërat më të. Kjo faqe, ose më mirë, kjo faqe interneti do të ju tregojnë se si të merrni një shenjë të jetë në gjendje të vërtetoj vetë. Shumica e sistemeve origjinalitetit të përdorin disa lloj shenjë ku mund të merrni këtë vlerë unike, e cila është me të vërtetë një varg të gjatë dhe të rastit, dhe në këtë mënyrë ata mund të shoqërojnë kërkesën që ju jeni duke bërë me ty. Me fjalë të tjera, ata e dinë se ju nuk jeni duke bërë ndonjë gjë të dyshimtë me të dhënat e tyre. Ata e dinë saktësisht se çfarë ju jeni duke marrë. Ata gjithashtu e di se ju keni leje për të parë këtë informacion. Nëse ju keni bërë një app Facebook app tuaj ka dhe të përdoruesit të caktuara, dhe ato kanë lejuar që përdoruesit app për të hyrë në pjesë të caktuara të profilin e tyre, atëherë çfarëdo kyç API, ose shenjë që ai është duke përdorur app do të jetë në gjendje për të hyrë në të dhënat për ata përdorues. Kjo mund të tingëllojë si e komplikuar, por nuk është shumë e keqe, dhe në qoftë se ju doni të përdorni Facebook unë do të ju rekomandojmë që të konsideratë duke luajtur rreth me API e tyre. Është shumë ftohtë, dhe ju mund të bëni shumë gjëra të ndryshme me të. Nëse shfrytëzuesi ju jep lejet e këtyre ju mund edhe të kthehen në API dhe thonë se unë dua të postoni në mur në fakt këtë përdorues, ose unë dua që ata të postoj një foto, dhe kjo është arsyeja pse më feed tuaj lajme ju do të merrni ndonjëherë ato gjëra annoying duke thënë se shoku juaj ka shikuar këtë video në një lloj të pazakontë faqes ose diçka të tillë. Kjo është për shkak se app është dhënë akses për të hapur në murin e atij personi. Ideja e përgjithshme, API Facebook është mjaft e komplikuar, por edhe me të vërtetë të dobishme. Patjetër me vlerë checking out, nëse ju jeni ende në kërkim për një projekt përfundimtar. Një tjetër suitë e TV që unë jam duke shkuar për të shkuar gjatë është CS50 TV. Më lejoni të zoom në këtu. CS50 ka të vërtetë vënë së bashku një seri e tërë e TV që ju mund të përdorni për një projekt përfundimtar, ose vetëm për ndonjë gjë që ju jeni duke bërë. Dhe ata janë kryesisht të lidhura Harvardit, dhe ata ndryshojnë nga menuja HUDS, për shembull, për këtë Events Harvardit API, e cila do të ju lejojnë të hyni në një listë të ngjarjet e ndryshme që janë në vazhdim e sipër në Harvard dhe se gjë e tillë. Dhe kështu ne mund klikoni në çdo një nga këto dhe për të marrë një spekulim për të, të cilën ju do të jetë në gjendje për të gjetur për çdo API, dhe ideja është kjo ju lejon të dini, A, veçanërisht atë të kërkojë nga API dhe si të kërkojnë atë. Me fjalë të tjera, në qoftë se unë dua të gjitha ngjarjet që ndodhin nesër atëherë unë kam marrë për të dhënë atë padyshim se data që unë dua në një format të caktuar, dhe B, ajo do të më thoni saktësisht se çfarë ajo do të japë përsëri në mua. Kjo do të thotë që unë jam duke shkuar për të ju kthehen këtë objekt JSON, ose si ju mund të shihni, ka formate të ndryshme. Ju gjithashtu mund të kthehen të dhënat si CSV, për shembull. Por ju e dini saktësisht se si të dhënave është duke shkuar për të parë kur ju të merrni atë përsëri kështu që ju mund të presin për të bërë disa gjëra me të. Ne mund të lëvizni poshtë dhe të shohim, për shembull, në qoftë se ne duam të query API për të marrë një kalendar, atëherë ne mund të përdorni këtë URL veçantë dhe t'i jepte parametra të caktuara të cilat do të jenë të dhënat që ne duam saktësisht. Dhe gjithashtu, në qoftë se ne duam të dhënat përsëri në një format të caktuar, atëherë ne mund të kërkoni atë të prodhimit të të dhënave në një CSV, dhe kjo është vetëm një tjetër parametër që ne jemi duke kaluar në API. Shumë gjëra të ftohtë për të bërë atje. Unë patjetër do të rekomandojë kontrolluar nga TV CS50. Unë jam duke shkuar për të parë në këtë API Ushqimit Harvardit në veçanti për pak. Një gjë e kam projektuar në fakt është ky website Noms Harvardit, e cila përdor API CS50 Ushqimit të rifitoj menu HUDS për ditë. Dhe për njerëzit e shkollave extension, HUDS është shërbimi ngrënie në Harvard. Çfarë ju merrni është që kjo faqe e cila përmban të gjitha ushqimet për këtë ditë, kështu që ne shohim drekë. Ne kemi një kategori të ndryshme. Ne kemi Bean dhe stacion me krunde. Ne kemi stacionin kafe oriz. Ne mund të shohim për mëngjes i vonë ne kemi këto disa artikuj ushqimore. Nëse ne të klikoni mbi to, atëherë ne të merrni informacion të ushqyerit. Ju shikoni kjo është informacion të ushqyerit grejpfrut për të, në rast se ju pyesin. Dhe kështu përsëri, ne jemi duke shkuar për të kolegëve në fund kthehet këtu pak dhe të shohim se çfarë saktësisht kjo është bërë për të marrë këto të dhëna. Dhe kjo rezulton të vërtetë nuk ishte shumë komplekse në të gjitha. Kjo skedë duket një çrregullt pak, por mbani në mend se kjo është trajtimi faqe të tërë, dhe në qoftë se unë lëvizni poshtë e shohim këtë funksion dhënave ndryshim. Tani, vetëm të jetë i qartë, kjo është e shkruar në CoffeeScript, cila është një gjuha që ju ndoshta nuk kanë parë para. Por kjo është goxha i lexueshëm, kështu që unë do të ecin nëpër atë sikur të ishte pseudokod. Data ndryshimi është një funksion që do të marrë në këtë vlerë datë, dhe ajo gjithashtu do të marrë në një të parë, të cilin ne nuk e kujdesit në lidhje me sa më shumë. Por gjëja e rëndësishme është se ajo ka këtë datë, dhe kjo datë është dita që ne duam të kërkojë të gjitha sendet ushqimore për të. Dhe pastaj ju shikoni ne kemi një pak e sintaksës këtu, e cila është në thelb parsing se data në një format të lexueshëm. Me fjalë të tjera, API kërkon datën në një format të caktuar. Ju nuk mund të them vetëm 16 nëntor 2012 AD. Kjo nuk do të dinë se çfarë të bëjë me këtë. Ajo dëshiron datën në një format të veçantë. Të gjithë ne jemi duke bërë këtu është dhënë atë pikërisht këtë format, cila është një vlerë vit dhe pastaj një vizë, një vlerë muaj, një tjetër vizë ndarëse dhe vlera data. Dhe ne gjithashtu thonë se ne duam të dhënat të jenë të prodhimit në JSON. Tani ne jemi duke e bërë këtë kërkesë AJAX, dhe siç e përmenda më herët, jQuery ka këtë funksion super të dobishme AJAX që të gjithë ju duhet të bëni është të specifikojë a parametrat më poshtë këtu, dhe ai do t'ju japë përsëri pikërisht ajo që ju dëshironi. Ne jemi duke thënë atë që ne duam URL është për të shkuar në është kjo API Ushqim CS50, që kemi marrë nga spec. Ne themi se ne duam të dhënave në JSON dhe se ne jemi duke shkuar për të dhënë atë këto të dhëna që ne kemi përcaktuar deri këtu. Kjo është dita që ne duam artikuj ushqimore për të. Dhe pastaj të gjithë ne duhet të bëni është të përcaktojë një lloj të funksioni suksesit, e cila është në thelb ajo që ndodh kur API kthehet që të dhënat. Me fjalë të tjera, ne kemi paketuar deri të gjitha parametrave që ne duam, e cila në këtë rast është dita që ne duam atë dhe fakti që ne duam atë në JSON, dhe ne e dërgoi atë jashtë në API, kështu që tani API është thënë, në rregull, këtu është të dhënat tuaja, kam marrë atë për ju. Ne kemi funksionin sukses, që do të thotë se dhënë API sukses kthen disa të dhëna, çfarë bëjmë ne me të? Dhe kjo rezulton se të gjithë ne bëjmë është e quajmë këtë menu azhornimi funksion me çfarëdo API është kthyer, kështu që ne mund të kërkoni për atë dhe të shohim se të gjithë ne jemi duke bërë është duke përdorur një bandë e sintaksë të ri këtu për të rinovuar HTML dhe futur këto të dhëna të reja. Çfarë është kjo lejon kemi këto shigjeta në të dyja anët, dhe ne mund të klikoni, dhe tani ne jemi duke kërkuar në të dhënat për ditën tjetër dhe përsëri për ditën e nesërme, dhe çdo herë kjo është e informuar se vlera datën dhe querying API, duke u kthyer disa të dhëna dhe të vënë atë në vend. Përsëri, ju mund të shihni, super, super të dobishme. Kjo app mori mua disa orë për të kollitem së bashku, dhe unë kam një përvojë pak më shumë, natyrisht, por projekt CS50 tuaj përfundimtar mund të duket diçka shumë si kjo. TV janë super të fuqishme për shumën e përpjekjeve që ata marrin. Gjëja e fundit që unë jam duke shkuar për të shkuar mbi një TV pak më gjerësisht. Unë nuk do të marrë sa më shumë në ta sa i përket asaj që ata e bëjnë në mënyrë specifike, por unë do të ju jap një ide të asaj që është atje. 2 ato me të vërtetë të dobishme, në qoftë se ju jeni të interesuar në analizën e të dhënave ose vizualizimi apo diçka të tillë, janë Freebase dhe Wikipedia. Wikipedia-me sa duket të gjithë ju e dini, është një enciklopedi online falas, dhe në fakt ajo ka një API, kështu që nëse ju doni të, për shembull, të marrë të gjitha tekstet dhe artikuj për oktapod ju mund shumë lehtë të bëjë këtë. Them vetëm hej, Wikipedia API, unë do të doja të të dhënave të kthyer si kjo, dhe unë do të doja atë në këtë format, dhe unë do të doja artikull është oktapod, dhe shumë shpejt ai do t'ju japë përsëri këtë informacion. Kjo mund të jetë vërtetë e dobishme në qoftë se ju doni të bëni disa lloj e faqes kjo është një shikues të mirë për Wikipedia ose diçka të tillë. Freebase është lloj i ngjashëm, edhe pse kjo është pak më e vështirë sa i përket API. Freebase është si Wikipedia në atë që është një enciklopedi në internet e cila përmban shumë dhe shumë të dhëna të ndryshme në lidhje me të gjitha llojet e temave të ndryshme, por është e ruajtur në një bazë të dhënash relacionale, e cila është paksa e ndryshme nga Wikipedia. Wikipedia ka artikuj veta dhe artikuj lidhur me nenet e tjera, por për pjesën më të madhe, në qoftë se ju doni të dhënat për oktapod, ju shkoni në nenin oktapod, të marrë që të dhënat, dhe ju keni një bandë e tekstit rreth octopuses, kështu që është e madhe. Freebase punon në një mënyrë pak më të komplikuar në të cilat çdo gjë është e lidhur me njëri-tjetrin. Me fjalë të tjera, në qoftë se ne jemi në kërkim për oktapod atëherë ajo ka një bandë e kategorive të lidhura me të. Për shembull, kjo është një kafshë, ai jeton nënujore, ajo ka një temperaturë të caktuar të trupit. Nuk e di. Dhe të gjitha këto kategori janë lidhjet në vende të tjera ku ju mund të shkoni për të parë gjërat me atë njëjtës kategori. Me fjalë të tjera, të dhënat oktapod set do të përmbajë një lidhje me të dhënat e përcaktuara për të gjitha kafshët, dhe që do të më lejoni të lëvizë në bazën e të dhënave me të vërtetë shpejt. Kjo mund të jetë shumë e dobishme në qoftë se ju jeni duke bërë diçka të tillë krahasime. Me fjalë të tjera, duke pasur parasysh një gjë të caktuar, ju doni të shihni çfarë tjetër është e lidhur për të dhe të shohim se çfarë tjetër nuk është e lidhur për të. Kjo gjë e tillë. Ajo mund të jetë e dobishme në një numër mënyrash. Nëse ju jeni duke kërkuar për më shumë një sfidë dhe të jetë në gjendje të bëjë disa gjëra më komplekse Unë do të konsiderojë marrjen e një vështrim në API Freebase. Por kryesisht, Wikipedia është një vend shumë të thjeshtë për të shkuar sa më shumë marrjen e informacionit. Një tjetër vend që unë do të shikojmë në është Last.fm, dhe unë jam në të vërtetë duke shkuar për të shkuar në faqen në rast se disa njerëz nuk janë të njohur, por në thelb është një Last.fm muzikë shijet dhe rekomandimet e internetit. Ju mund të bëni një llogari. Ju mund të filloni muzikë ngarkimi nga lojtar tuaj muzikë në faqen e internetit, dhe në thelb ajo do të fillojë t'ju dhënë rekomandime muzikë bazuar në atë që ju dëgjoni. Për shembull, në qoftë se ju shkoni në profilin tuaj faqe-kjo është e imja, ju mund të shihni se ju keni një listë të kohëve të fundit dëgjohen këngë. Ju mund të shihni artistë përgjithshme të preferuar, të gjitha atë gjë e tillë, dhe përsëri, ka një API madh prapa Last.fm,  dhe ju mund ta përdorni atë për të bërë shumë dhe shumë gjëra me të vërtetë cool. Për shembull, unë do të shkoni në faqen e një shoku që ka këtë website Tools Last.fm. Kjo është në fakt një platformë që është ndërtuar në API Last.fm, dhe kjo e bën një numër të gjëra mjaft interesante. Në qoftë se unë hyni me emrin tim të përdoruesit, për shembull, Unë mund të kërkoni atë për të gjeneruar një tag cloud, për shembull, dhe se çfarë do të bëni është të japësh një imazh të kthyer të gjitha zhanret e ndryshme dhe se lloj i gjë që unë doja të dëgjojnë për të. Si është bërë kjo? Shumë në thelb është e thënë të API Last.fm këtu është ky përdorues. Unë do të doja të di zhanër e çdo këngë që ata kanë dëgjuar kurrë për të, dhe ju mund të bëni që duke bërë një telefonatë shumë e thjeshtë për AJAX API Last.fm. Ju do të kthehet një listë e madhe, dhe pastaj natyrisht disa sende të tjera është duke u bërë për ta kthyer atë në një reje fjalë, por ju mund të shihni të përgjithshëm kjo është shumë e lehtë për të hyrë dhe shumë e lehtë për t'u përdorur. Really nice për një numër të gjërave. Unë mendoj se kjo është për të gjitha unë do të them në përgjithësi. Një gjë e fundit që unë do të përmend në lidhje me TV në përgjithësi është se ju do të ndonjëherë të kandidojë në diçka të quajtur Shkalla e kufizuar, dhe ideja e kufizimit norma është që ju nuk doni që të abuzojnë TV. Me fjalë të tjera, ajo është me të vërtetë e bukur se shumë prej këtyre faqeve kanë TV që ju mund të shkoni në dhe të përdorni për të lira. Megjithatë, nëse ju jeni duke e bërë miliona apo miliarda e kërkesave në ditë, për shembull, nëse ju jeni të mbërthyer në një lak pafund që është pafundësisht querying disa lloj API dhe duke u kthyer një sasi të madhe të të dhënave, natyrisht që nuk është e mirë, kështu që çfarë është një shumë e TV bëni është të ketë kjo normë kufizimin funksion që thotë se ju mund të bëni vetëm 1.000 kërkesa në ditë për adresën IP ose diçka të tillë. Dhe në qoftë se ju jeni duke bërë një shumë të testimit dhe se gjë e tillë, ju do të ndonjëherë të kandidojë në atë, dhe papritmas ajo do të mbyllet ju off dhe i thuaj jo, unë nuk jam duke ju dhënë të dhëna të ndonjë më shumë. Çfarë doni të bëni është të luajnë sipas rregullave. Ju dëshironi të bëni të sigurtë që ju lexoni spekulim API kujdes. Në qoftë se ka disa rregulla bashkangjitur me të, si ju mund të bëni vetëm pyetje në ditë X ose ju mund të hyni në një pjesë të bazës së të dhënave një numër të caktuar herë ose diçka të tillë që ju doni të bëni të sigurtë që ju rrinë në atë. Për sa kohë që ju të luajnë brenda atyre rregullave që ju ndoshta do të keni një kohë të vërtetë të bukur duke përdorur TV. Takeaway juaj i përgjithshëm është TV janë me të vërtetë, me të vërtetë të dobishme. Ka një API për pothuajse çdo shërbim web të mëdha atje. Pretty much çdo pjesë e Suite Tools Google, Google Maps, Google Earth, GMail, Google Calendar, të gjitha ato gjëra kanë TV. Ju mund të përdorni ato për të dy të dhëna marrë nga serveri dhe për të dërguar të dhënat në server. Me fjalë të tjera, në qoftë se ju të kërkuar për të bërë një app kalendar që mund të rinovuar Kalendari Google dikujt, ka një API për këtë. Nëse ju doni të bëni diçka që është duke shkuar për të treguar se ku vendndodhja e një adresë të caktuar është që ju mund të përdorni Google Maps API për këtë. TV janë fantastike të dobishme, dhe ata janë kudo. Nëse jeni të interesuar në ndonjë lloj ideje, ka ndoshta një API të lidhura që ju mund të përdorni për të marrë një shumë të të dhënave shumë shpejt dhe shumë thjesht. Nëse ju jeni ende duke kërkuar për një projekt ose në qoftë se ju vetëm doni të luajnë rreth me diçka në përgjithësi, TV janë patjetër me vlerë duke bërë. Faleminderit, dhe unë jam i lumtur për të përgjigjen për çdo pyetje që ju djema mund të ketë. Mirë, faleminderit shumë. [CS50.TV]