1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [Seminar] [Hyrje një programues për TV] 2 00:00:02,480 --> 00:00:04,059 [Billy Janitsch] [Universiteti i Harvardit] [Tommy MacWilliam] 3 00:00:04,059 --> 00:00:08,220 [Kjo është CS50.] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> Hi, të gjithë, unë jam Billy, dhe sot unë jam duke shkuar për të folur në lidhje me TV, 5 00:00:12,100 --> 00:00:15,220 ose ndërfaqe e programimit të aplikacionit, 6 00:00:15,220 --> 00:00:20,040 veçanërisht në kontekstin e CS50 projekteve finale dhe atë gjë e tillë. 7 00:00:20,040 --> 00:00:22,490 Në përgjithësi ajo është një API? 8 00:00:22,490 --> 00:00:25,530 Në terma shumë të gjerë, kjo është lloj i një njeri të mesme që e lejon 2 copa 9 00:00:25,530 --> 00:00:28,610 software për të komunikuar me njëri-tjetrin. 10 00:00:28,610 --> 00:00:32,530 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ë. 11 00:00:32,530 --> 00:00:35,450 Ajo që ne të vërtetë duan është një lloj i tokës së mesme të dobishme 12 00:00:35,450 --> 00:00:40,570 për të komunikuar me një lloj të bazës së të dhënave diku. 13 00:00:40,570 --> 00:00:43,310 >> Këtu është një tabelë, dhe në thelb ideja është që 14 00:00:43,310 --> 00:00:46,790 ne jemi një kërkesë, dhe ne duam të marrë të dhëna nga një database, 15 00:00:46,790 --> 00:00:49,570 por ne nuk duam të query bazës së të dhënave direkt. 16 00:00:49,570 --> 00:00:52,710 Në vend të kësaj ne duam të kalojnë nëpër këtë lloj të njeriut mesme, API. 17 00:00:52,710 --> 00:00:55,440 Ideja prapa që është numrat 2 dhe 3 në tabelë 18 00:00:55,440 --> 00:00:57,750 janë të dyja do të jetë shumë e komplikuar dhe çrregullt. 19 00:00:57,750 --> 00:00:59,960 Me fjalë të tjera, kur është querying API bazën e të dhënave, 20 00:00:59,960 --> 00:01:03,300 ajo ndoshta do të jetë duke përdorur SQL tavolina dhe të gjitha atë lloj stuff, 21 00:01:03,300 --> 00:01:05,489 dhe ne kemi mësuar pak për atë në CS50, por në përgjithësi, 22 00:01:05,489 --> 00:01:07,590 ju keni vënë re se kjo është pak e një dhimbje. 23 00:01:07,590 --> 00:01:10,590 Ajo merr shumë, shumë e komplikuar dhe çrregullt, sidomos kur ju jeni duke e bërë 24 00:01:10,590 --> 00:01:12,530 pyetje komplekse dhe se gjë e tillë. 25 00:01:12,530 --> 00:01:15,960 >> Ajo që ne të vërtetë duan është një lloj i mënyrës së dobishme dhe të thjeshtë 26 00:01:15,960 --> 00:01:19,780 për të marrë që të dhënat dhe kjo është ideja prapa numrat 1 dhe 4 në tabelë. 27 00:01:19,780 --> 00:01:23,600 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 28 00:01:23,600 --> 00:01:27,760 dhe një mënyrë të vërtetë të thjeshtë për të marrë që të dhënat prapa. 29 00:01:27,760 --> 00:01:33,020 Nuk është një mënyrë kryesore që se të dhënat është dërguar dhe marrë zakonisht, 30 00:01:33,020 --> 00:01:36,490 cila është JSON, ose simbol JavaScript Object. 31 00:01:36,490 --> 00:01:40,370 Kjo mund të ndryshojë pak sa si ju dërgojë kërkesën API. 32 00:01:40,370 --> 00:01:43,210 Me fjalë të tjera, në qoftë se ju doni një sasi të caktuar të të dhënave, 33 00:01:43,210 --> 00:01:46,670 si ju tregoni API për të marrë që të dhënat mund të ndryshojnë pak. 34 00:01:46,670 --> 00:01:49,210 Zakonisht kjo përfshin të bërë një lloj të kërkesës rrjetit. 35 00:01:49,210 --> 00:01:53,130 Me fjalë të tjera, qasja në disa lloj URL që do të tregojë API 36 00:01:53,130 --> 00:01:56,190 pikërisht ajo që ju doni, por të dhënave është pothuajse gjithmonë kthehet, 37 00:01:56,190 --> 00:01:59,530 me fjalë të tjera, numri 4 në JSON. 38 00:01:59,530 --> 00:02:01,030 >> Çfarë është JSON saktësisht? 39 00:02:01,030 --> 00:02:03,030 Siç thashë, simbol JavaScript Object. 40 00:02:03,030 --> 00:02:07,090 Kjo është në thelb standarde universale për transmetimin dhe marrjen e të dhënave. 41 00:02:07,090 --> 00:02:11,410 Ideja është se ju keni këto 3 kategori të gjëra. 42 00:02:11,410 --> 00:02:13,540 Ju keni vargjeve, hashmaps dhe primitives. 43 00:02:13,540 --> 00:02:16,580 Vargjeve dhe hashmaps keni shikuar në një pak në CS50, 44 00:02:16,580 --> 00:02:19,870 por ju keni marrë një lloj ndjenjë shumë të rreptë të asaj që ata janë. 45 00:02:19,870 --> 00:02:22,780 Me fjalë të tjera, me të vargjeve ju e dini se ata janë të detyruar të tipit, 46 00:02:22,780 --> 00:02:26,560 kështu që ju keni vetëm një lloj të llojit që shkon nëpër rrjet të tërë. 47 00:02:26,560 --> 00:02:29,310 JSON është shumë më i butë me atë gjë e tillë. 48 00:02:29,310 --> 00:02:33,590 Në thelb ideja është që ju të ndërtuar këtë objekt, 49 00:02:33,590 --> 00:02:36,270 cili mund të jetë i përbërë nga ndonjë nga këto 3 gjëra 50 00:02:36,270 --> 00:02:39,470 dhe mund të përbëhet nga ato të shumta të tyre, dhe ata mund të mbivendosur. 51 00:02:39,470 --> 00:02:42,110 >> Lloj Ja një shembull i të JSON, 52 00:02:42,110 --> 00:02:47,910 e cila është këto kllapa kaçurrel këtu përfaqësojnë hashmap tuaj, 53 00:02:47,910 --> 00:02:51,400 dhe një hashmap është në thelb një hartë nga një lloj çelësi 54 00:02:51,400 --> 00:02:53,340 në një lloj të vlerës. 55 00:02:53,340 --> 00:02:56,440 Ju do të shihni këtu se ne kemi çelësin e pronave, 56 00:02:56,440 --> 00:02:59,600 dhe kjo është hartës mbi një grup, i cili është kjo gjë e tërë. 57 00:02:59,600 --> 00:03:04,120 Ne e shohim një tjetër element të hashmap, e cila është çelësi, kjo isAwesome 58 00:03:04,120 --> 00:03:07,370 të cilat harta në një vlerë primitive të vërtetë, me fjalë të tjera, një boolean. 59 00:03:07,370 --> 00:03:09,420 Primitives mund të jenë vargjet. Ata mund të jenë numra të plotë. 60 00:03:09,420 --> 00:03:11,960 Ata mund të jenë bools, diçka të tillë. 61 00:03:11,960 --> 00:03:18,410 Dhe ju të shihni përmbajtjen e kësaj grup që pronat pikë të ka 2 vargjet në të, 62 00:03:18,410 --> 00:03:20,050 vetë-ngjashëm dhe të mrekullueshme. 63 00:03:20,050 --> 00:03:27,410 Ata janë 2 prona e JSON, dhe ne shohim se JSON është awesome. 64 00:03:27,410 --> 00:03:30,060 Për të parë në se një pak më nga afër Unë jam duke shkuar për të ndërtuar 65 00:03:30,060 --> 00:03:32,870 një shembull më të ndërlikuar të JSON këtu. 66 00:03:32,870 --> 00:03:37,000 >> Le të fillojmë me një grup, për shembull, vetëm një koleksion bosh. 67 00:03:37,000 --> 00:03:39,180 Por kjo është lloj i mërzitshëm, kështu që ne jemi duke shkuar për të mbushur atë pak, 68 00:03:39,180 --> 00:03:43,420 dhe siç thashë, vargjeve në JSON janë shkruani lidhur, 69 00:03:43,420 --> 00:03:46,400 kështu që ne mund të kemi një varg këtu, e cila është e hi, 70 00:03:46,400 --> 00:03:49,330 dhe kjo është një tjetër element i kësaj grup. 71 00:03:49,330 --> 00:03:53,450 Dhe gjithashtu, ne mund të shtoni një hashmapping këtu, e cila do të ketë një mappings pak. 72 00:03:53,450 --> 00:04:00,470 Ajo do të ketë një hartë nga emri në Billy string. 73 00:04:00,470 --> 00:04:04,590 Ne kemi një hartë nga emri në Billy, dhe ne kemi një hartë të 74 00:04:04,590 --> 00:04:10,860 ngjyra e preferuar për të kaltër. 75 00:04:10,860 --> 00:04:12,700 Kjo është në thelb një shembull i mirë i JSON. 76 00:04:12,700 --> 00:04:18,160 Ai lloj i merr në-uh, nevojë për një presje atje-të gjitha pjesëve të ndryshme të saj. 77 00:04:18,160 --> 00:04:21,140 Përsëri, kjo nuk është lloji i detyruar në të gjitha, kështu që ju mund të ketë ndonjë lloj të llojeve të 78 00:04:21,140 --> 00:04:24,710 brenda çdo gjë që ju dëshironi, dhe ideja është e vetë-ngjashëm. 79 00:04:24,710 --> 00:04:28,830 Me fjalë të tjera, kjo e drejtë këtu është një objekt JSON, si është kjo gjë e tërë, 80 00:04:28,830 --> 00:04:33,200 si është vetëm kjo, kështu që ju mund të ketë një jetë primitive një objekt, 81 00:04:33,200 --> 00:04:35,680 një koleksion të jetë një objekt apo një hashmap të jetë një objekt. 82 00:04:35,680 --> 00:04:40,270 >> 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. 83 00:04:40,270 --> 00:04:45,860 Ju mund të keni ndonjë të dhëna të mundshme që ju mund të krijoj ruajtura në JSON. 84 00:04:45,860 --> 00:04:47,900 Kjo e bën atë një gjuhë të vërtetë e bukur për të përdorur me TV 85 00:04:47,900 --> 00:04:50,770 sepse kjo do të thotë pak a shumë se nuk ka rëndësi se çfarë të dhënat që ju dëshironi 86 00:04:50,770 --> 00:04:54,270 atje do të jetë një mënyrë për të marrë atë përsëri në JSON. 87 00:04:54,270 --> 00:04:58,600 Një disa prona që të bëjë JSON veçanërisht i mirë për këtë lloj gjë. 88 00:04:58,600 --> 00:05:02,270 Siç mund ta shikoni, në krahasim me një shumë gjëra që ju keni qenë duke punuar me të në CS50 89 00:05:02,270 --> 00:05:06,040 ajo është relativisht shumë e lehtë për të lexuar dhe gjithashtu shumë e lehtë për të shkruar. 90 00:05:06,040 --> 00:05:09,700 Ju mund porosit atë në qoftë se ju dëshironi, si unë ishte duke bërë në këtë shembull, 91 00:05:09,700 --> 00:05:12,990 i cili ju jep një version të bukur, bukur që ju mund të shihni të vërtetë të mirë. 92 00:05:12,990 --> 00:05:17,150 Por për më tepër, ajo është gjithashtu e lehtë për të lexuar dhe shkruar për një kompjuter. 93 00:05:17,150 --> 00:05:19,870 Me fjalë të tjera, është e lehtë të kuptoj dhe të lehtë për të kodifikuar, 94 00:05:19,870 --> 00:05:23,820 që do të thotë se është shumë shpejt për aq sa leximi i të dhënave është i shqetësuar, 95 00:05:23,820 --> 00:05:26,460 dhe JSON mund të gjenerohet vërtetë shpejt. 96 00:05:26,460 --> 00:05:30,300 >> Është gjithashtu shumë e lehtë për të hyrë në pjesë të ndryshme të JSON dhe atë gjë e tillë. 97 00:05:30,300 --> 00:05:33,320 Kjo është e bukur, dhe për më tepër, fakti se ajo është vetë-ngjashëm, 98 00:05:33,320 --> 00:05:36,090 me fjalë të tjera, fakti se ju mund të keni JSON JSON brenda brenda JSON 99 00:05:36,090 --> 00:05:40,040 është me të vërtetë e bukur për magazinimin e të dhënave. 100 00:05:40,040 --> 00:05:45,490 Një pjesë tjetër që është në përgjithësi të vërtetë të dobishme për të punuar me TV është jQuery. 101 00:05:45,490 --> 00:05:49,290 Ju kam mësuar pak e JavaScript, e cila është një mënyrë bukur 102 00:05:49,290 --> 00:05:53,710 për të manipuluar HTML dhe CSS brenda një website. 103 00:05:53,710 --> 00:05:57,190 Por kjo mund të jetë lloj i një dhimbje për kodin në JavaScript të thjeshtë, 104 00:05:57,190 --> 00:05:59,810 kryesisht për shkak se JavaScript është një gjuhë me të vërtetë fjalëshumë. 105 00:05:59,810 --> 00:06:03,020 Ju duhet të mësoni një shumë të sintaksës, dhe vetëm për të bërë gjëra shumë të thjeshta 106 00:06:03,020 --> 00:06:07,590 ajo merr një shumë të kodit, kështu që jQuery është një bibliotekë për JavaScript. 107 00:06:07,590 --> 00:06:09,800 Me fjalë të tjera, kjo është një file JavaScript që ju mund të ngarkesës 108 00:06:09,800 --> 00:06:12,730 dhe pastaj të përdorin funksionet jQuery për të bërë gjëra të caktuara. 109 00:06:12,730 --> 00:06:15,670 JQuery dhe në thelb e bën jetën tuaj një tërësi shumë më e lehtë. 110 00:06:15,670 --> 00:06:20,390 Ajo thjeshton atë që do të marrë qindra e linjave në JavaScript poshtë për disa rreshta në jQuery. 111 00:06:20,390 --> 00:06:24,430 >> Kjo është veçanërisht e dobishme në qoftë se ju jeni duke përdorur API për shkak se në përgjithësi 112 00:06:24,430 --> 00:06:27,600 si ju do të jetë hyrë në TV është duke bërë kërkesa Ajax, 113 00:06:27,600 --> 00:06:30,130 dhe unë besoj se David ka përmendur në leksionin që kërkon AJAX 114 00:06:30,130 --> 00:06:33,120 përgjithësi janë kur ju jeni duke bërë një kërkesë e rrjetit në një lloj të serverit 115 00:06:33,120 --> 00:06:37,760 dhe duke u kthyer një lloj të të dhënave dhe përditësimin një faqe menjëherë. 116 00:06:37,760 --> 00:06:41,840 Ndërsa në JavaScript të thjeshtë që do të marrin numrat e çmendur e linjave 117 00:06:41,840 --> 00:06:44,620 për të vërtetuar të gjitha headers dhe të bëjë të gjithë këtë lloj të stuff, 118 00:06:44,620 --> 00:06:46,810 jQuery ka një funksion me të vërtetë të thjeshtë të quajtur AJAX, 119 00:06:46,810 --> 00:06:51,760 dhe të gjithë ju duhet të bëni në AJAX është dhënë parametrat që ju dëshironi për të dhënë API, 120 00:06:51,760 --> 00:06:56,830 vendndodhja e API dhe çdo lloj tjetër të opsioneve që ju doni të konfiguroni. 121 00:06:56,830 --> 00:07:02,480 Është me të vërtetë, me të vërtetë e bukur dhe shumë i dobishëm për këtë lloj gjë. 122 00:07:02,480 --> 00:07:06,970 Kjo është e gjitha ne kemi nevojë për të filluar marrjen e duart tona të pista në TV. 123 00:07:06,970 --> 00:07:10,220 >> Unë jam duke shkuar për të sjellë disa shembuj dhe eksploruar pronat e tyre të ndryshme 124 00:07:10,220 --> 00:07:13,150 dhe pse ata janë të dobishme për lloje të ndryshme të gjërave. 125 00:07:13,150 --> 00:07:15,570 Gjëja e parë që unë do të ju tregojnë se në fakt është diçka që unë jam duke punuar në 126 00:07:15,570 --> 00:07:18,310 në laborator time kërkimore, e cila është një Viewer Ngram, 127 00:07:18,310 --> 00:07:23,270 dhe në thelb idenë e një Viewer Ngram është që ju mund të kërkoni për një lloj të fjalës 128 00:07:23,270 --> 00:07:28,840 apo fraza dhe shikoni se si shpesh ajo u shfaq në një grup të caktuar të tekstit me kalimin e kohës. 129 00:07:28,840 --> 00:07:33,160 Ky shembull këtu është ky grup dhënat e foshnjave 130 00:07:33,160 --> 00:07:36,480 që janë lindur në Nju Jork midis 1920 dhe 2000. 131 00:07:36,480 --> 00:07:40,090 Ne mund të kërkoni, për shembull, për Jennifer emrin, 132 00:07:40,090 --> 00:07:44,400 dhe shohim se para-viteve 1960 me të vërtetë nuk është përdorur në të gjithë se shumë, 133 00:07:44,400 --> 00:07:48,900 dhe pastaj si ne të merrni në vitet e mëvonshme kjo është duke u përdorur gjithnjë e më shumë. 134 00:07:48,900 --> 00:07:53,680 Ne gjithashtu mund të bëjë krahasime, kështu që nëse ne krahasojmë Jennifer, për shembull, Thomas, 135 00:07:53,680 --> 00:07:56,520 ne mund të shohim Thomas ka qenë shumë i përhapur në të gjithë historinë, 136 00:07:56,520 --> 00:07:58,780 Jennifer ndërsa është një emër më të fundit. 137 00:07:58,780 --> 00:08:00,590 Ne mund të bëjmë këtë lloj gjë. 138 00:08:00,590 --> 00:08:02,460 >> Si e bën këtë punë kërkesë? 139 00:08:02,460 --> 00:08:06,030 Në thelb, ajo punon nëpërmjet një API. 140 00:08:06,030 --> 00:08:08,660 Me fjalë të tjera, ne kemi parametra të caktuara këtu. 141 00:08:08,660 --> 00:08:11,360 Ne kemi parametrat e asaj që ne jemi aktualisht në kërkim për të, 142 00:08:11,360 --> 00:08:13,720 cilat janë këto emra, dhe pastaj ne kemi disa pronave të tjera, 143 00:08:13,720 --> 00:08:16,570 si boshtin Y dhe boshtit x. 144 00:08:16,570 --> 00:08:18,440 Ju mund të shihni kemi disa opsione të ndryshme sa i përket 145 00:08:18,440 --> 00:08:20,860 Rezoluta koha për të përdorur dhe se gjë e tillë. 146 00:08:20,860 --> 00:08:26,700 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, 147 00:08:26,700 --> 00:08:29,400 dhe ne duam të marrë që të dhënat kthehet në një farë mënyrë e dobishme. 148 00:08:29,400 --> 00:08:34,020 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ë 149 00:08:34,020 --> 00:08:38,970 sepse me sa duket këto të dhëna në lidhje me emrat e foshnjës jeton në një bazë të dhënash diku, 150 00:08:38,970 --> 00:08:42,789 dhe ajo do të jetë i komplikuar me të vërtetë që të ketë për të query atë me dorë 151 00:08:42,789 --> 00:08:45,830 dhe të vendosë saktësisht se çfarë të dhënave të kthehen. 152 00:08:45,830 --> 00:08:49,300 Me fjalë të tjera, ne vetëm kujdesen për Jennifer dhe Thomas në këtë rast, 153 00:08:49,300 --> 00:08:53,410 dhe ne vetëm kujdesen për në një aks të caktuar dhe të gjitha atë lloj stuff. 154 00:08:53,410 --> 00:08:55,720 >> Si nuk kemi marrë rreth kësaj? 155 00:08:55,720 --> 00:09:01,200 Të gërmoj në këtë API pak më shumë Unë do t'ju tregoj një shembull tjetër të kësaj platforme 156 00:09:01,200 --> 00:09:04,490 e cila përdor një grup pak më të ndryshme të të dhënave. 157 00:09:04,490 --> 00:09:09,950 Ky grup dhënave, në vend të të qenit emra baby, është në të vërtetë vetëm tërë 158 00:09:09,950 --> 00:09:12,460 bazës së të dhënave të shtypura publikimin e Bibliotekës Hapur, 159 00:09:12,460 --> 00:09:18,410 i cili është një burim gjigant i teksteve të botuara gjatë 100 apo më shumë viteve të fundit. 160 00:09:18,410 --> 00:09:23,540 Ideja është që ne kemi këtë compository e miliona dhe miliona të tekstit, 161 00:09:23,540 --> 00:09:27,420 të cilat ne tani mund të kërkoni për fjalë të ndryshme dhe frazat in 162 00:09:27,420 --> 00:09:30,840 Ja një shembull që ndryshon pak ndryshe nga shembulli i mëparshëm 163 00:09:30,840 --> 00:09:33,350 Unë ju tregoi, e cila është që ne kemi këto 3 pyetje e kërkimit, 164 00:09:33,350 --> 00:09:36,290 , lufta lufta, dhe fjala frëngjisht për luftë, e cila është Guerre. 165 00:09:36,290 --> 00:09:40,380 Dhe ne jemi në kërkim brenda 3 seksione të ndryshme të bazës së të dhënave të përgjithshëm. 166 00:09:40,380 --> 00:09:45,080 Me fjalë të tjera, në këtë pyetje e parë ne jemi vetëm në kërkim në SHBA, 167 00:09:45,080 --> 00:09:51,150 në një të dytë vetëm në Britani të Madhe, dhe i treti vetëm nga veprat e botuara në Francë. 168 00:09:51,150 --> 00:09:53,120 Ne shohim disa modele interesante dalin. 169 00:09:53,120 --> 00:09:58,180 Për shembull, ne shohim drejtë rreth këtu që- 170 00:09:58,180 --> 00:10:02,410 oops, unë messed up aksin pak, por ju mund të shihni të drejtë në këtë varg këtu 171 00:10:02,410 --> 00:10:05,730 rreth Luftës Civile ka një gozhdë të madhe në edicionin amerikan 172 00:10:05,730 --> 00:10:08,340 por nuk është e tillë një gozhdë të madhe në dy të tjera, dhe kjo është padyshim për shkak 173 00:10:08,340 --> 00:10:10,880 Lufta Civile Amerikane po ndodhte në atë pikë. 174 00:10:10,880 --> 00:10:13,890 >> Ne mund të shohim disa cool stuff atje, 175 00:10:13,890 --> 00:10:17,070 por ajo që ne me të vërtetë intereson është se si kemi marrë këto të dhëna. 176 00:10:17,070 --> 00:10:21,320 Unë do të ju merr prapa skenave në këtë app në një pak. 177 00:10:21,320 --> 00:10:24,540 Një mashtrim i zoti është në qoftë se ju jeni duke punuar me faqen dhe llojit të duan të dinë 178 00:10:24,540 --> 00:10:27,430 çfarë po ndodh prapa skenave, ju mund të hapur deri mjetet zhvilluesi i saj. 179 00:10:27,430 --> 00:10:30,200 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ë 180 00:10:30,200 --> 00:10:35,160 ju mund të bëni, ndryshim kontrollit, J, dhe që ju merr në tastierë JavaScript. 181 00:10:35,160 --> 00:10:37,420 Ka disa tabs këtu. 182 00:10:37,420 --> 00:10:39,680 Ata mund të jenë mjaft të dobishme në rrethana të ndryshme, por më intereson në lidhje me rrjetin e 183 00:10:39,680 --> 00:10:44,150 tab tani, dhe unë në të vërtetë kanë për të rifreskuar për të marrë atë të punës. 184 00:10:44,150 --> 00:10:50,180 Oh, më vjen keq. 185 00:10:50,180 --> 00:10:52,320 Ajo i pëlqen për të dhënë një shembull të rastit. 186 00:10:52,320 --> 00:10:54,700 Mirë, ne do të përdorim këtë shembull në vend atëherë. 187 00:10:54,700 --> 00:11:01,330 >> Ideja është se kjo API këtu, 188 00:11:01,330 --> 00:11:05,330 dhe ju mund të shikoni saktësisht çfarë API është kthyer. 189 00:11:05,330 --> 00:11:10,220 Kjo është ajo që aplikimi është duke u kthyer nga API ka dërguar këtë kërkesë. 190 00:11:10,220 --> 00:11:13,680 Më lejoni të zoom në një pak, 191 00:11:13,680 --> 00:11:18,340 dhe ne mund të shohim në thelb kjo është vetëm një seri e vlerës kryesore në çifte JSON. 192 00:11:18,340 --> 00:11:23,220 Me fjalë të tjera, ne kemi këtë hashmap këtu që është vlera hartë. 193 00:11:23,220 --> 00:11:26,440 Me fjalë të tjera, është e hartes vite për vlerat. 194 00:11:26,440 --> 00:11:32,600 Në 1765 çfarëdo fjala ne fillim kërkuar për të është përdorur 90 herë 195 00:11:32,600 --> 00:11:35,810 nga 1 milion, kështu që ne jemi duke u kthyer këtë rezultat. 196 00:11:35,810 --> 00:11:40,280 Kjo nuk është saktësisht JSON që ne kemi këtë rezultat header pak këtu, 197 00:11:40,280 --> 00:11:45,630 por vini re se ky objekt gjithë këtu është vetëm një pikë e madhe e madhe JSON. 198 00:11:45,630 --> 00:11:51,070 Ne kemi këtu një koleksion i cili përmban këtë element të tërë, 199 00:11:51,070 --> 00:11:55,590 dhe ju mund të shihni se element i tërë mbaron atje, dhe pastaj ne kemi një tjetër element i madh 200 00:11:55,590 --> 00:11:59,430 që shkon gjatë gjithë rrugës deri në fund, dhe se përfundon këtu. 201 00:11:59,430 --> 00:12:02,200 Ne kemi një koleksion të vërtetë të madhe me 2 objekte në të, 202 00:12:02,200 --> 00:12:04,630 dhe secili prej këtyre objekteve është një hashmap. 203 00:12:04,630 --> 00:12:07,340 Ju mund të shihni brenda secilit prej këtyre hashmaps ne kemi një hartë 204 00:12:07,340 --> 00:12:12,700 e këtë vlerë indeksi të 0 dhe vlerës kjo vlerë ndaj një tjetër hashmap, 205 00:12:12,700 --> 00:12:18,360 e cila përsëri është hartë vlerat aks X për aks vlerat y. 206 00:12:18,360 --> 00:12:20,970 >> Ju mund të shihni JSON merr pak e komplikuar, por në përgjithësi, 207 00:12:20,970 --> 00:12:24,190 kjo është në fakt shumë e dobishme, dhe kjo është shumë e lehtë për të hyrë në krahasim me 208 00:12:24,190 --> 00:12:27,390 forma të tjera të ndryshme të simbol. 209 00:12:27,390 --> 00:12:30,550 Sa i përket asaj që ne jemi aktualisht dërgimin e të dhënave në API për të marrë, 210 00:12:30,550 --> 00:12:34,690 Unë jam duke shkuar për të shkuar në fund kthehet pak këtu. 211 00:12:34,690 --> 00:12:39,850 Kjo është e madhe fotografi JavaScript që e trajtimit të të gjitha ndërveprimet e web app, 212 00:12:39,850 --> 00:12:44,810 dhe kështu që ne nuk e kujdesit për shumicën e këtë, por ne nuk kujdeset për disa prej tyre. 213 00:12:44,810 --> 00:12:47,410 Për shembull, ne lidhje me kujdes këtë funksion buildQuery, 214 00:12:47,410 --> 00:12:50,670 dhe ideja e këtij funksioni është në thelb ajo është në kërkim rreth e rrotull faqe, 215 00:12:50,670 --> 00:12:53,750 parafytyruar se çfarë përdoruesi dëshiron të query, me fjalë të tjera, 216 00:12:53,750 --> 00:12:57,090 kontrolluar ato kuti ku ata kanë input termat e tyre e kërkimit, 217 00:12:57,090 --> 00:13:01,380 kontrolluar Y ndryshme dhe boshtin X vlerat që ata kanë zgjedhur dhe të gjitha atë gjë e tillë, 218 00:13:01,380 --> 00:13:06,650 dhe ajo do të nxjerr nga goja këtë vlerë pyetje, të cilat unë pastaj mund të dërgojnë jashtë për të API. 219 00:13:06,650 --> 00:13:09,180 >> Kjo duket e komplikuar, dhe kjo është e komplikuar shumë 220 00:13:09,180 --> 00:13:18,090 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- 221 00:13:18,090 --> 00:13:21,640 është se unë jam duke shkuar për të marrë në tastierë për të shtypur saktësisht se vlera query 222 00:13:21,640 --> 00:13:28,110 se ai është dërguar për në API. 223 00:13:28,110 --> 00:13:30,870 Kjo është në fakt të drejtë këtu. Na vjen keq, ajo nxjerr shumë gjëra. 224 00:13:30,870 --> 00:13:33,690 Por kjo është ajo që kemi kujdes në lidhje me, këtë objekt të drejtë këtu. 225 00:13:33,690 --> 00:13:35,300 Ky është objekti query. 226 00:13:35,300 --> 00:13:40,670 Me fjalë të tjera, kjo është pikërisht ajo që aplikimi web është dërguar në API, 227 00:13:40,670 --> 00:13:45,730 dhe kështu që le të shohim brenda një pak, dhe ne shohim ne kemi një disa vlera këtu. 228 00:13:45,730 --> 00:13:48,710 Ne e shohim ne kemi këtë lloj numërimin, e cila është në dukuritë milion fjalë, 229 00:13:48,710 --> 00:13:51,460 e cila është pikërisht ajo që ne kemi zgjedhur në aksin Y këtu. 230 00:13:51,460 --> 00:13:53,740 Kjo është se ku po vijnë nga. 231 00:13:53,740 --> 00:13:58,010 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 232 00:13:58,010 --> 00:14:01,610 që kjo të dhënave është duke jetuar në, dhe ne duam për të hyrë në të dhënat specifike që 233 00:14:01,610 --> 00:14:04,950 në krahasim me të dhënat e emrave baby, për shembull. 234 00:14:04,950 --> 00:14:08,320 Pastaj kemi këtë vlerë grupe, 235 00:14:08,320 --> 00:14:12,090 e cila është thënë se ne duam të kërkuar nga viti në krahasim me 236 00:14:12,090 --> 00:14:16,030 ndonjë tjetër aks X vlerë. 237 00:14:16,030 --> 00:14:19,040 Atëherë kemi një metodë, të cilën disa TV do të bëjë gjëra të shumta. 238 00:14:19,040 --> 00:14:22,360 Me fjalë të tjera, kjo mund të kthehet API lloje të tjera të të dhënave, 239 00:14:22,360 --> 00:14:27,740 por në këtë rast, ne duam që të hartë aks vlerave X në boshtin Y vlerave. 240 00:14:27,740 --> 00:14:30,730 Kjo është ajo që është thënë për të bërë atë atje, 241 00:14:30,730 --> 00:14:35,020 dhe ne kemi këtë koleksion limitet kërkimi, i cili përmban vlerat 2. 242 00:14:35,020 --> 00:14:40,720 E para është ajo që ne shohim këtu, e cila është e gjitha e vlerave 243 00:14:40,720 --> 00:14:43,020 përfshira në atë kutinë e parë të vogël në krye. 244 00:14:43,020 --> 00:14:47,570 >> Me fjalë të tjera, ne duam të shikojmë për betejën e fjalës, dhe ne duam të filtruar atë 245 00:14:47,570 --> 00:14:51,920 nga tekstet anglisht në kuadër të letërsisë amerikane. 246 00:14:51,920 --> 00:14:54,590 Ne kemi këtë vend, e cila është SHBA. 247 00:14:54,590 --> 00:14:59,130 Ne kemi një gjuhë, e cila është anglisht, kështu që ne kemi të gjitha këto pjesë të ndryshme 248 00:14:59,130 --> 00:15:02,690 që janë thënë të gjitha API pikërisht ajo që ne duam. 249 00:15:02,690 --> 00:15:04,940 Ne nuk e dimë se çfarë të dhënat që kemi marrë përsëri është ende, 250 00:15:04,940 --> 00:15:10,970 por ne e dimë se të dhënat do të marrë një formë të caktuar. 251 00:15:10,970 --> 00:15:13,650 Ky shembull është lloj i në anën e komplikuar, 252 00:15:13,650 --> 00:15:16,180 dhe ju nuk do domosdoshmërisht të jetë duke përdorur një API këtë kompleks, 253 00:15:16,180 --> 00:15:20,600 por kjo është për të ju tregojnë varg dhe fuqinë e asaj që mund të bëjnë TV. 254 00:15:20,600 --> 00:15:24,980 Me fjalë të tjera, duke përdorur një sistem relativisht i thjeshtë pyetje ne thelb kanë një kuti input 255 00:15:24,980 --> 00:15:29,490 me një selektorë disa të tjera në vende të ndryshme. 256 00:15:29,490 --> 00:15:32,010 >> Më lejoni të zoom prapa këtu. 257 00:15:32,010 --> 00:15:37,720 Ne kemi një kuti input me një zgjedhje disa metadata të ndryshme, 258 00:15:37,720 --> 00:15:40,610 dhe ne kemi boshtin Y aks dhe zgjedhje të x. 259 00:15:40,610 --> 00:15:42,830 Ne në fakt nuk kanë shumë fusha që, 260 00:15:42,830 --> 00:15:46,210 dhe ne mund të shohim shumë të lehtë, ne jemi në gjendje të query një lloj API 261 00:15:46,210 --> 00:15:48,510 dhe për të marrë të dhëna mbrapa dhe pastaj të vënë atë në këtë tabelë, 262 00:15:48,510 --> 00:15:52,080 cila pastaj do të shfaqë atë në një mënyrë të dobishme. 263 00:15:52,080 --> 00:15:54,970 Të shikojmë në një shembull tjetër që mund të jetë pak më e njohur për ju djema 264 00:15:54,970 --> 00:15:56,510 ne do të kthehet në Facebook. 265 00:15:56,510 --> 00:15:59,440 API Facebook quhet Grafiku Facebook, 266 00:15:59,440 --> 00:16:04,390 dhe në thelb do të thotë se çfarë është Facebook e sheh veten si këtë bazë të dhënash masiv 267 00:16:04,390 --> 00:16:08,000 të shumë pjesëve të ndryshme që të gjithë kanë marrëdhënie të caktuara për njëri-tjetrin. 268 00:16:08,000 --> 00:16:11,070 Me fjalë të tjera, unë jam një përdorues në Facebook, kështu që unë kam një profil, 269 00:16:11,070 --> 00:16:14,310 dhe unë gjithashtu kanë miq të caktuara, dhe secili prej tyre ka një profil, 270 00:16:14,310 --> 00:16:17,580 dhe secili nga miqtë e mi ka një mur, i cili ka komente të ndryshme mbi të, 271 00:16:17,580 --> 00:16:20,800 dhe secili prej këtyre komenteve ka pëlqen dhe të gjitha atë gjë e tillë. 272 00:16:20,800 --> 00:16:23,100 >> Ka shumë pjesë të ndryshme të Facebook. 273 00:16:23,100 --> 00:16:26,670 Kjo është një API jashtëzakonisht komplekse, dhe ka ton ju mund të bëni me të, 274 00:16:26,670 --> 00:16:28,450 por kjo është në fakt shumë e thjeshtë për t'u përdorur. 275 00:16:28,450 --> 00:16:33,680 Unë jam duke shkuar për të filluar duke shkuar në graph.facebook.com / billyjanitsch, 276 00:16:33,680 --> 00:16:38,430 i cili është emri unik Llogaria ime, dhe emri juaj do të jetë ose llogari 277 00:16:38,430 --> 00:16:43,710 një lloj i fjalës në qoftë se ju keni zgjedhur atë, ose ajo mund të jetë vetëm një varg të numrave. 278 00:16:43,710 --> 00:16:46,360 Ajo që ne të kthehemi është informacion shumë themelore. 279 00:16:46,360 --> 00:16:50,460 Ne shohim se unë kam një emër parë, e cila është Billy, një emër i fundit, i cili është Janitsch. 280 00:16:50,460 --> 00:16:53,370 Ka një ID unike Facebook që kam. 281 00:16:53,370 --> 00:16:57,920 Ju mund të shihni se unë jam mashkull dhe se kam ambient time gjuhë 282 00:16:57,920 --> 00:17:01,290 në British anglisht. 283 00:17:01,290 --> 00:17:03,490 Me fjalë të tjera, ne po shohim shumë informata themelore këtu. 284 00:17:03,490 --> 00:17:08,670 Kjo nuk është shumë, por kjo nuk na japin një ide të asaj që është atje. 285 00:17:08,670 --> 00:17:10,849 >> Ne mund të bëjmë të njëjtën gjë për David Malan, për shembull. 286 00:17:10,849 --> 00:17:13,599 Unë mendoj se emri i tij është dmalan. 287 00:17:13,599 --> 00:17:16,369 Ne e shohim David Malan ka një ID unike. 288 00:17:16,369 --> 00:17:19,300 Ai ka një emër, emri, emri i mesëm, mbiemri. 289 00:17:19,300 --> 00:17:24,210 Ne gjithashtu shohim se ai është mashkull dhe ka vendosur të tij në gjuhën angleze në SHBA. 290 00:17:24,210 --> 00:17:26,869 Me fjalë të tjera, ne po shohim informacion mjaft themelore këtu. 291 00:17:26,869 --> 00:17:28,860 Tani, çfarë ndodh nëse ne përpiqemi për të kontrolluar nga diçka tjetër? 292 00:17:28,860 --> 00:17:33,060 Le të thonë se unë jam i interesuar në atë që Davidi Malan ka pëlqyer në Facebook. 293 00:17:33,060 --> 00:17:36,860 Unë mund të bëj / i pëlqen. Tani ne kemi drejtuar në një problem. 294 00:17:36,860 --> 00:17:39,280 Ne kemi marrë disa lloj të gabimit që thotë një shenjë qasje 295 00:17:39,280 --> 00:17:41,660 është e nevojshme për të kërkuar këtë informacion. 296 00:17:41,660 --> 00:17:44,730 Por në qoftë se ju mendoni rreth saj, që në fakt ka kuptim, sepse kjo do të jetë e pazakontë 297 00:17:44,730 --> 00:17:47,830 në qoftë se ju mund të hyni në çdo pjesë të vetme të bazës së të dhënave Facebook 298 00:17:47,830 --> 00:17:50,170 vetëm nga disa lloj API të thjeshtë, apo jo? 299 00:17:50,170 --> 00:17:56,040 Me fjalë të tjera, me sa duket informacioni juaj nuk mund të arrihen nga çdokush që dëshiron atë. 300 00:17:56,040 --> 00:17:58,330 >> Ky gabim është pikërisht ajo që do të thotë. 301 00:17:58,330 --> 00:18:03,630 Disa TV kërkojnë leje të caktuara, në mënyrë për të hyrë në të dhënat e tyre. 302 00:18:03,630 --> 00:18:06,940 Dhe TV edhe më të avancuar, si Facebook një, 303 00:18:06,940 --> 00:18:09,840 do të kërkojë leje për të bërë disa gjëra të caktuara. 304 00:18:09,840 --> 00:18:12,650 Unë mund të shoh këtë informacion bazë për David Malan. 305 00:18:12,650 --> 00:18:15,950 Unë mund të shoh se ai është mashkull dhe se ai jeton në SHBA, 306 00:18:15,950 --> 00:18:19,270 por unë nuk mund të vërtetë shoh ndonjë gjë që e kaluara. 307 00:18:19,270 --> 00:18:23,050 Për të marrë rreth kësaj tani për tani, Facebook ka këtë mjet bukur 308 00:18:23,050 --> 00:18:27,690 cila është grafik API eksplorues, dhe ideja e që është ju mund të lloj i 309 00:18:27,690 --> 00:18:31,880 përbëjnë lejet për veten tuaj bazuar në llogarinë tuaj 310 00:18:31,880 --> 00:18:35,680 dhe pastaj shikoni gjëra që në mënyrë specifike llogaria juaj mund të shikoni. 311 00:18:35,680 --> 00:18:45,120 Për shembull, në qoftë se unë bëj graph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 uh, I guess I duhet të revalidate shenjë time këtu. 313 00:18:53,510 --> 00:18:55,950 Rregull. 314 00:18:55,950 --> 00:19:01,740 Nëse unë bëjë që përsëri, e madhe, tani e shoh që kam marrë këtë objekt mbrapa 315 00:19:01,740 --> 00:19:06,300 i cili thotë se unë si petë pishinë, të cilat janë në kategorinë Lojra dhe lodra. 316 00:19:06,300 --> 00:19:08,620 I like walruses, të cilat janë në Animal kategorisë. 317 00:19:08,620 --> 00:19:10,180 Këto janë aktuale pëlqen ime Facebook. 318 00:19:10,180 --> 00:19:13,280 Ata janë lloj i turpshme. 319 00:19:13,280 --> 00:19:16,090 >> Por ne mund të shohim këto të dhëna është kthyer të gjithë në JSON. 320 00:19:16,090 --> 00:19:18,160 Kjo është goxha e lexueshme. 321 00:19:18,160 --> 00:19:20,970 Me fjalë të tjera, ne kemi këtë hartë të dhënave për një lloj të një grup, 322 00:19:20,970 --> 00:19:25,220 dhe çdo element i këtij grup është një hashmap cila harta 323 00:19:25,220 --> 00:19:28,530 emri i një si dhe kategoria e një si. 324 00:19:28,530 --> 00:19:31,240 Secili si ka një ID unike. 325 00:19:31,240 --> 00:19:34,510 Nuk janë të gjitha llojet e gjërave të ndryshme të të dhënave që ne mund të merrni, 326 00:19:34,510 --> 00:19:37,980 dhe në qoftë se ju jeni të interesuar në përdorimin e API Facebook për një projekt përfundimtar CS50 327 00:19:37,980 --> 00:19:40,720 ose për ndonjë gjë si kjo është e vërtetë mjaft e mundur. 328 00:19:40,720 --> 00:19:44,260 Në thelb se si ju merrni rreth gjë është authentication Facebook 329 00:19:44,260 --> 00:19:48,030 përdor një sistem të quajtur OAuth, ose Authentication Hapur, 330 00:19:48,030 --> 00:19:52,870 dhe unë nuk doni të merrni në të tani sepse OAuth ose lloj tjetër 331 00:19:52,870 --> 00:19:56,060 e vërtetimit tenton të ndryshojnë shumë në mes të TV të ndryshme, 332 00:19:56,060 --> 00:19:58,320 kështu që unë mund të kalojnë një kohë të gjatë do mbi çdo një, 333 00:19:58,320 --> 00:20:01,170 por ata janë në fakt shumë vetë-shpjeguese. 334 00:20:01,170 --> 00:20:04,050 >> Nëse ju Google API Facebook është shumë i lexueshëm. 335 00:20:04,050 --> 00:20:06,670 Ka një spekulim të tërë. 336 00:20:06,670 --> 00:20:10,210 Për shembull, kjo është dokumentacioni për API Facebook, 337 00:20:10,210 --> 00:20:14,170 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 338 00:20:14,170 --> 00:20:17,170 që janë në dispozicion për të marrë të dhëna përsa i përket 339 00:20:17,170 --> 00:20:21,550 dhe gjithashtu lejet e ndryshme që kam nevojë, në mënyrë për të hyrë në to. 340 00:20:21,550 --> 00:20:25,470 Siç e pamë, ne nuk kemi nevojë lejet për të hyrë në emrin apo gjininë, 341 00:20:25,470 --> 00:20:29,380 por përtej kësaj ne kemi nevojë për leje për gjërat më të. 342 00:20:29,380 --> 00:20:33,040 Kjo faqe, ose më mirë, kjo faqe interneti do të ju tregojnë se si të merrni 343 00:20:33,040 --> 00:20:35,640 një shenjë të jetë në gjendje të vërtetoj vetë. 344 00:20:35,640 --> 00:20:39,290 Shumica e sistemeve origjinalitetit të përdorin disa lloj shenjë 345 00:20:39,290 --> 00:20:42,880 ku mund të merrni këtë vlerë unike, e cila është me të vërtetë një varg të gjatë dhe të rastit, 346 00:20:42,880 --> 00:20:46,240 dhe në këtë mënyrë ata mund të shoqërojnë kërkesën që ju jeni duke bërë me ty. 347 00:20:46,240 --> 00:20:50,560 Me fjalë të tjera, ata e dinë se ju nuk jeni duke bërë ndonjë gjë të dyshimtë me të dhënat e tyre. 348 00:20:50,560 --> 00:20:53,340 Ata e dinë saktësisht se çfarë ju jeni duke marrë. 349 00:20:53,340 --> 00:20:56,180 Ata gjithashtu e di se ju keni leje për të parë këtë informacion. 350 00:20:56,180 --> 00:20:59,110 >> Nëse ju keni bërë një app Facebook app tuaj ka dhe të përdoruesit të caktuara, 351 00:20:59,110 --> 00:21:03,380 dhe ato kanë lejuar që përdoruesit app për të hyrë në pjesë të caktuara të profilin e tyre, 352 00:21:03,380 --> 00:21:07,790 atëherë çfarëdo kyç API, ose shenjë që ai është duke përdorur app 353 00:21:07,790 --> 00:21:11,090 do të jetë në gjendje për të hyrë në të dhënat për ata përdorues. 354 00:21:11,090 --> 00:21:13,780 Kjo mund të tingëllojë si e komplikuar, por nuk është shumë e keqe, 355 00:21:13,780 --> 00:21:16,810 dhe në qoftë se ju doni të përdorni Facebook unë do të ju rekomandojmë që të 356 00:21:16,810 --> 00:21:18,990 konsideratë duke luajtur rreth me API e tyre. 357 00:21:18,990 --> 00:21:21,610 Është shumë ftohtë, dhe ju mund të bëni shumë gjëra të ndryshme me të. 358 00:21:21,610 --> 00:21:24,880 Nëse shfrytëzuesi ju jep lejet e këtyre ju mund edhe të kthehen në API 359 00:21:24,880 --> 00:21:28,820 dhe thonë se unë dua të postoni në mur në fakt këtë përdorues, ose unë dua që ata të postoj një foto, 360 00:21:28,820 --> 00:21:32,390 dhe kjo është arsyeja pse më feed tuaj lajme ju do të merrni ndonjëherë ato gjëra annoying 361 00:21:32,390 --> 00:21:37,840 duke thënë se shoku juaj ka shikuar këtë video në një lloj të pazakontë faqes ose diçka të tillë. 362 00:21:37,840 --> 00:21:43,120 Kjo është për shkak se app është dhënë akses për të hapur në murin e atij personi. 363 00:21:43,120 --> 00:21:48,350 Ideja e përgjithshme, API Facebook është mjaft e komplikuar, por edhe me të vërtetë të dobishme. 364 00:21:48,350 --> 00:21:53,220 Patjetër me vlerë checking out, nëse ju jeni ende në kërkim për një projekt përfundimtar. 365 00:21:53,220 --> 00:21:57,930 >> Një tjetër suitë e TV që unë jam duke shkuar për të shkuar gjatë është CS50 TV. 366 00:21:57,930 --> 00:22:00,070 Më lejoni të zoom në këtu. 367 00:22:00,070 --> 00:22:03,390 CS50 ka të vërtetë vënë së bashku një seri e tërë e TV 368 00:22:03,390 --> 00:22:07,080 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ë. 369 00:22:07,080 --> 00:22:12,830 Dhe ata janë kryesisht të lidhura Harvardit, dhe ata ndryshojnë nga menuja HUDS, 370 00:22:12,830 --> 00:22:17,780 për shembull, për këtë Events Harvardit API, e cila do të ju lejojnë të hyni në një listë të 371 00:22:17,780 --> 00:22:21,290 ngjarjet e ndryshme që janë në vazhdim e sipër në Harvard dhe se gjë e tillë. 372 00:22:21,290 --> 00:22:24,510 Dhe kështu ne mund klikoni në çdo një nga këto dhe për të marrë një spekulim për të, 373 00:22:24,510 --> 00:22:28,090 të cilën ju do të jetë në gjendje për të gjetur për çdo API, dhe ideja është 374 00:22:28,090 --> 00:22:33,920 kjo ju lejon të dini, A, veçanërisht atë të kërkojë nga API dhe si të kërkojnë atë. 375 00:22:33,920 --> 00:22:37,370 Me fjalë të tjera, në qoftë se unë dua të gjitha ngjarjet që ndodhin nesër 376 00:22:37,370 --> 00:22:42,550 atëherë unë kam marrë për të dhënë atë padyshim se data që unë dua në një format të caktuar, 377 00:22:42,550 --> 00:22:46,030 dhe B, ajo do të më thoni saktësisht se çfarë ajo do të japë përsëri në mua. 378 00:22:46,030 --> 00:22:48,590 Kjo do të thotë që unë jam duke shkuar për të ju kthehen këtë objekt JSON, 379 00:22:48,590 --> 00:22:50,960 ose si ju mund të shihni, ka formate të ndryshme. 380 00:22:50,960 --> 00:22:54,050 >> Ju gjithashtu mund të kthehen të dhënat si CSV, për shembull. 381 00:22:54,050 --> 00:22:57,620 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 382 00:22:57,620 --> 00:23:00,610 kështu që ju mund të presin për të bërë disa gjëra me të. 383 00:23:00,610 --> 00:23:07,240 Ne mund të lëvizni poshtë dhe të shohim, për shembull, në qoftë se ne duam të query API 384 00:23:07,240 --> 00:23:11,500 për të marrë një kalendar, atëherë ne mund të përdorni këtë URL veçantë 385 00:23:11,500 --> 00:23:16,480 dhe t'i jepte parametra të caktuara të cilat do të jenë të dhënat që ne duam saktësisht. 386 00:23:16,480 --> 00:23:19,540 Dhe gjithashtu, në qoftë se ne duam të dhënat përsëri në një format të caktuar, 387 00:23:19,540 --> 00:23:23,790 atëherë ne mund të kërkoni atë të prodhimit të të dhënave në një CSV, 388 00:23:23,790 --> 00:23:27,700 dhe kjo është vetëm një tjetër parametër që ne jemi duke kaluar në API. 389 00:23:27,700 --> 00:23:29,210 Shumë gjëra të ftohtë për të bërë atje. 390 00:23:29,210 --> 00:23:32,550 Unë patjetër do të rekomandojë kontrolluar nga TV CS50. 391 00:23:32,550 --> 00:23:36,000 >> Unë jam duke shkuar për të parë në këtë API Ushqimit Harvardit në veçanti për pak. 392 00:23:36,000 --> 00:23:39,870 Një gjë e kam projektuar në fakt është ky website Noms Harvardit, 393 00:23:39,870 --> 00:23:44,930 e cila përdor API CS50 Ushqimit të rifitoj menu HUDS për ditë. 394 00:23:44,930 --> 00:23:50,400 Dhe për njerëzit e shkollave extension, HUDS është shërbimi ngrënie në Harvard. 395 00:23:50,400 --> 00:23:55,130 Ç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ë. 396 00:23:55,130 --> 00:23:58,130 Ne kemi një kategori të ndryshme. Ne kemi Bean dhe stacion me krunde. 397 00:23:58,130 --> 00:24:00,340 Ne kemi stacionin kafe oriz. 398 00:24:00,340 --> 00:24:03,360 Ne mund të shohim për mëngjes i vonë ne kemi këto disa artikuj ushqimore. 399 00:24:03,360 --> 00:24:07,030 Nëse ne të klikoni mbi to, atëherë ne të merrni informacion të ushqyerit. 400 00:24:07,030 --> 00:24:12,240 Ju shikoni kjo është informacion të ushqyerit grejpfrut për të, në rast se ju pyesin. 401 00:24:12,240 --> 00:24:14,870 Dhe kështu përsëri, ne jemi duke shkuar për të kolegëve në fund kthehet këtu pak 402 00:24:14,870 --> 00:24:18,530 dhe të shohim se çfarë saktësisht kjo është bërë për të marrë këto të dhëna. 403 00:24:18,530 --> 00:24:21,710 Dhe kjo rezulton të vërtetë nuk ishte shumë komplekse në të gjitha. 404 00:24:21,710 --> 00:24:28,720 Kjo skedë duket një çrregullt pak, por mbani në mend se kjo është trajtimi faqe të tërë, 405 00:24:28,720 --> 00:24:34,130 dhe në qoftë se unë lëvizni poshtë e shohim këtë funksion dhënave ndryshim. 406 00:24:34,130 --> 00:24:36,630 >> Tani, vetëm të jetë i qartë, kjo është e shkruar në CoffeeScript, 407 00:24:36,630 --> 00:24:39,570 cila është një gjuha që ju ndoshta nuk kanë parë para. 408 00:24:39,570 --> 00:24:44,810 Por kjo është goxha i lexueshëm, kështu që unë do të ecin nëpër atë sikur të ishte pseudokod. 409 00:24:44,810 --> 00:24:49,080 Data ndryshimi është një funksion që do të marrë në këtë vlerë datë, 410 00:24:49,080 --> 00:24:51,740 dhe ajo gjithashtu do të marrë në një të parë, të cilin ne nuk e kujdesit në lidhje me sa më shumë. 411 00:24:51,740 --> 00:24:54,110 Por gjëja e rëndësishme është se ajo ka këtë datë, 412 00:24:54,110 --> 00:25:00,080 dhe kjo datë është dita që ne duam të kërkojë të gjitha sendet ushqimore për të. 413 00:25:00,080 --> 00:25:04,030 Dhe pastaj ju shikoni ne kemi një pak e sintaksës këtu, 414 00:25:04,030 --> 00:25:09,000 e cila është në thelb parsing se data në një format të lexueshëm. 415 00:25:09,000 --> 00:25:11,920 Me fjalë të tjera, API kërkon datën në një format të caktuar. 416 00:25:11,920 --> 00:25:17,390 Ju nuk mund të them vetëm 16 nëntor 2012 AD. 417 00:25:17,390 --> 00:25:20,320 Kjo nuk do të dinë se çfarë të bëjë me këtë. Ajo dëshiron datën në një format të veçantë. 418 00:25:20,320 --> 00:25:23,230 Të gjithë ne jemi duke bërë këtu është dhënë atë pikërisht këtë format, 419 00:25:23,230 --> 00:25:26,520 cila është një vlerë vit dhe pastaj një vizë, një vlerë muaj, 420 00:25:26,520 --> 00:25:29,420 një tjetër vizë ndarëse dhe vlera data. 421 00:25:29,420 --> 00:25:34,910 Dhe ne gjithashtu thonë se ne duam të dhënat të jenë të prodhimit në JSON. 422 00:25:34,910 --> 00:25:37,560 >> Tani ne jemi duke e bërë këtë kërkesë AJAX, dhe siç e përmenda më herët, 423 00:25:37,560 --> 00:25:41,680 jQuery ka këtë funksion super të dobishme AJAX që të gjithë ju duhet të bëni është të specifikojë 424 00:25:41,680 --> 00:25:45,780 a parametrat më poshtë këtu, dhe ai do t'ju japë përsëri pikërisht ajo që ju dëshironi. 425 00:25:45,780 --> 00:25:50,490 Ne jemi duke thënë atë që ne duam URL është për të shkuar në është kjo API Ushqim CS50, 426 00:25:50,490 --> 00:25:52,270 që kemi marrë nga spec. 427 00:25:52,270 --> 00:25:56,730 Ne themi se ne duam të dhënave në JSON dhe se 428 00:25:56,730 --> 00:25:59,490 ne jemi duke shkuar për të dhënë atë këto të dhëna që ne kemi përcaktuar deri këtu. 429 00:25:59,490 --> 00:26:02,670 Kjo është dita që ne duam artikuj ushqimore për të. 430 00:26:02,670 --> 00:26:07,790 Dhe pastaj të gjithë ne duhet të bëni është të përcaktojë një lloj të funksioni suksesit, 431 00:26:07,790 --> 00:26:11,980 e cila është në thelb ajo që ndodh kur API kthehet që të dhënat. 432 00:26:11,980 --> 00:26:15,490 Me fjalë të tjera, ne kemi paketuar deri të gjitha parametrave që ne duam, 433 00:26:15,490 --> 00:26:20,530 e cila në këtë rast është dita që ne duam atë dhe fakti që ne duam atë në JSON, 434 00:26:20,530 --> 00:26:23,840 dhe ne e dërgoi atë jashtë në API, kështu që tani API është thënë, në rregull, 435 00:26:23,840 --> 00:26:26,350 këtu është të dhënat tuaja, kam marrë atë për ju. 436 00:26:26,350 --> 00:26:29,930 Ne kemi funksionin sukses, që do të thotë se dhënë API 437 00:26:29,930 --> 00:26:32,230 sukses kthen disa të dhëna, çfarë bëjmë ne me të? 438 00:26:32,230 --> 00:26:35,980 >> Dhe kjo rezulton se të gjithë ne bëjmë është e quajmë këtë menu azhornimi funksion 439 00:26:35,980 --> 00:26:42,680 me çfarëdo API është kthyer, kështu që ne mund të kërkoni për atë 440 00:26:42,680 --> 00:26:47,970 dhe të shohim se të gjithë ne jemi duke bërë është duke përdorur një bandë e sintaksë të ri këtu 441 00:26:47,970 --> 00:26:52,220 për të rinovuar HTML dhe futur këto të dhëna të reja. 442 00:26:52,220 --> 00:26:56,580 Çfarë është kjo lejon kemi këto shigjeta në të dyja anët, dhe ne mund të klikoni, 443 00:26:56,580 --> 00:27:01,060 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, 444 00:27:01,060 --> 00:27:04,820 dhe çdo herë kjo është e informuar se vlera datën dhe querying API, 445 00:27:04,820 --> 00:27:07,510 duke u kthyer disa të dhëna dhe të vënë atë në vend. 446 00:27:07,510 --> 00:27:10,590 Përsëri, ju mund të shihni, super, super të dobishme. 447 00:27:10,590 --> 00:27:14,410 Kjo app mori mua disa orë për të kollitem së bashku, 448 00:27:14,410 --> 00:27:20,140 dhe unë kam një përvojë pak më shumë, natyrisht, por projekt CS50 tuaj përfundimtar 449 00:27:20,140 --> 00:27:22,870 mund të duket diçka shumë si kjo. 450 00:27:22,870 --> 00:27:29,540 >> TV janë super të fuqishme për shumën e përpjekjeve që ata marrin. 451 00:27:29,540 --> 00:27:32,800 Gjëja e fundit që unë jam duke shkuar për të shkuar mbi një TV pak më gjerësisht. 452 00:27:32,800 --> 00:27:35,480 Unë nuk do të marrë sa më shumë në ta sa i përket asaj që ata e bëjnë në mënyrë specifike, 453 00:27:35,480 --> 00:27:38,740 por unë do të ju jap një ide të asaj që është atje. 454 00:27:38,740 --> 00:27:42,700 2 ato me të vërtetë të dobishme, në qoftë se ju jeni të interesuar në analizën e të dhënave ose vizualizimi 455 00:27:42,700 --> 00:27:45,960 apo diçka të tillë, janë Freebase dhe Wikipedia. 456 00:27:45,960 --> 00:27:49,800 Wikipedia-me sa duket të gjithë ju e dini, është një enciklopedi online falas, 457 00:27:49,800 --> 00:27:53,230 dhe në fakt ajo ka një API, kështu që nëse ju doni të, për shembull, 458 00:27:53,230 --> 00:27:56,250 të marrë të gjitha tekstet dhe artikuj për oktapod 459 00:27:56,250 --> 00:27:58,030 ju mund shumë lehtë të bëjë këtë. 460 00:27:58,030 --> 00:28:02,300 Them vetëm hej, Wikipedia API, unë do të doja të të dhënave të kthyer si kjo, 461 00:28:02,300 --> 00:28:07,010 dhe unë do të doja atë në këtë format, dhe unë do të doja artikull është oktapod, 462 00:28:07,010 --> 00:28:09,820 dhe shumë shpejt ai do t'ju japë përsëri këtë informacion. 463 00:28:09,820 --> 00:28:12,230 Kjo mund të jetë vërtetë e dobishme në qoftë se ju doni të bëni disa lloj e faqes 464 00:28:12,230 --> 00:28:16,200 kjo është një shikues të mirë për Wikipedia ose diçka të tillë. 465 00:28:16,200 --> 00:28:21,350 >> Freebase është lloj i ngjashëm, edhe pse kjo është pak më e vështirë sa i përket API. 466 00:28:21,350 --> 00:28:24,390 Freebase është si Wikipedia në atë që është një enciklopedi në internet 467 00:28:24,390 --> 00:28:29,050 e cila përmban shumë dhe shumë të dhëna të ndryshme në lidhje me të gjitha llojet e temave të ndryshme, 468 00:28:29,050 --> 00:28:33,150 por është e ruajtur në një bazë të dhënash relacionale, e cila është paksa e ndryshme nga Wikipedia. 469 00:28:33,150 --> 00:28:36,410 Wikipedia ka artikuj veta dhe artikuj lidhur me nenet e tjera, 470 00:28:36,410 --> 00:28:38,860 por për pjesën më të madhe, në qoftë se ju doni të dhënat për oktapod, 471 00:28:38,860 --> 00:28:41,990 ju shkoni në nenin oktapod, të marrë që të dhënat, dhe ju keni një bandë e tekstit 472 00:28:41,990 --> 00:28:43,830 rreth octopuses, kështu që është e madhe. 473 00:28:43,830 --> 00:28:46,870 Freebase punon në një mënyrë pak më të komplikuar në të cilat 474 00:28:46,870 --> 00:28:48,930 çdo gjë është e lidhur me njëri-tjetrin. 475 00:28:48,930 --> 00:28:52,620 Me fjalë të tjera, në qoftë se ne jemi në kërkim për oktapod 476 00:28:52,620 --> 00:28:54,940 atëherë ajo ka një bandë e kategorive të lidhura me të. 477 00:28:54,940 --> 00:28:57,920 >> Për shembull, kjo është një kafshë, ai jeton nënujore, 478 00:28:57,920 --> 00:28:59,710 ajo ka një temperaturë të caktuar të trupit. 479 00:28:59,710 --> 00:29:01,210 Nuk e di. 480 00:29:01,210 --> 00:29:04,230 Dhe të gjitha këto kategori janë lidhjet në vende të tjera ku ju mund të shkoni 481 00:29:04,230 --> 00:29:06,640 për të parë gjërat me atë njëjtës kategori. 482 00:29:06,640 --> 00:29:13,450 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, 483 00:29:13,450 --> 00:29:16,790 dhe që do të më lejoni të lëvizë në bazën e të dhënave me të vërtetë shpejt. 484 00:29:16,790 --> 00:29:21,740 Kjo mund të jetë shumë e dobishme në qoftë se ju jeni duke bërë diçka të tillë krahasime. 485 00:29:21,740 --> 00:29:24,490 Me fjalë të tjera, duke pasur parasysh një gjë të caktuar, ju doni të shihni 486 00:29:24,490 --> 00:29:27,890 çfarë tjetër është e lidhur për të dhe të shohim se çfarë tjetër nuk është e lidhur për të. 487 00:29:27,890 --> 00:29:30,700 Kjo gjë e tillë. Ajo mund të jetë e dobishme në një numër mënyrash. 488 00:29:30,700 --> 00:29:34,250 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 489 00:29:34,250 --> 00:29:38,740 Unë do të konsiderojë marrjen e një vështrim në API Freebase. 490 00:29:38,740 --> 00:29:44,670 Por kryesisht, Wikipedia është një vend shumë të thjeshtë për të shkuar sa më shumë marrjen e informacionit. 491 00:29:44,670 --> 00:29:48,340 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 492 00:29:48,340 --> 00:29:53,800 në rast se disa njerëz nuk janë të njohur, por në thelb është një Last.fm muzikë 493 00:29:53,800 --> 00:29:57,220 shijet dhe rekomandimet e internetit. 494 00:29:57,220 --> 00:29:59,000 Ju mund të bëni një llogari. 495 00:29:59,000 --> 00:30:04,250 Ju mund të filloni muzikë ngarkimi nga lojtar tuaj muzikë 496 00:30:04,250 --> 00:30:08,020 në faqen e internetit, dhe në thelb ajo do të fillojë t'ju dhënë rekomandime muzikë 497 00:30:08,020 --> 00:30:10,030 bazuar në atë që ju dëgjoni. 498 00:30:10,030 --> 00:30:14,270 >> Për shembull, në qoftë se ju shkoni në profilin tuaj faqe-kjo është e imja, 499 00:30:14,270 --> 00:30:18,180 ju mund të shihni se ju keni një listë të kohëve të fundit dëgjohen këngë. 500 00:30:18,180 --> 00:30:22,550 Ju mund të shihni artistë përgjithshme të preferuar, të gjitha atë gjë e tillë, 501 00:30:22,550 --> 00:30:25,280 dhe përsëri, ka një API madh prapa Last.fm, 502 00:30:25,280 --> 00:30:29,360  dhe ju mund ta përdorni atë për të bërë shumë dhe shumë gjëra me të vërtetë cool. 503 00:30:29,360 --> 00:30:38,870 Për shembull, unë do të shkoni në faqen e një shoku që ka këtë website Tools Last.fm. 504 00:30:38,870 --> 00:30:42,380 Kjo është në fakt një platformë që është ndërtuar në API Last.fm, 505 00:30:42,380 --> 00:30:45,420 dhe kjo e bën një numër të gjëra mjaft interesante. 506 00:30:45,420 --> 00:30:50,260 Në qoftë se unë hyni me emrin tim të përdoruesit, për shembull, 507 00:30:50,260 --> 00:30:53,110 Unë mund të kërkoni atë për të gjeneruar një tag cloud, për shembull, 508 00:30:53,110 --> 00:30:56,480 dhe se çfarë do të bëni është të japësh një imazh të kthyer 509 00:30:56,480 --> 00:30:59,850 të gjitha zhanret e ndryshme dhe se lloj i gjë që unë doja të dëgjojnë për të. 510 00:30:59,850 --> 00:31:01,410 Si është bërë kjo? 511 00:31:01,410 --> 00:31:05,670 Shumë në thelb është e thënë të API Last.fm këtu është ky përdorues. 512 00:31:05,670 --> 00:31:10,710 Unë do të doja të di zhanër e çdo këngë që ata kanë dëgjuar kurrë për të, 513 00:31:10,710 --> 00:31:15,130 dhe ju mund të bëni që duke bërë një telefonatë shumë e thjeshtë për AJAX API Last.fm. 514 00:31:15,130 --> 00:31:18,990 Ju do të kthehet një listë e madhe, dhe pastaj natyrisht disa sende të tjera është duke u bërë 515 00:31:18,990 --> 00:31:22,280 për ta kthyer atë në një reje fjalë, por ju mund të shihni të përgjithshëm 516 00:31:22,280 --> 00:31:25,850 kjo është shumë e lehtë për të hyrë dhe shumë e lehtë për t'u përdorur. 517 00:31:25,850 --> 00:31:30,750 Really nice për një numër të gjërave. 518 00:31:30,750 --> 00:31:35,940 >> Unë mendoj se kjo është për të gjitha unë do të them në përgjithësi. 519 00:31:35,940 --> 00:31:39,040 Një gjë e fundit që unë do të përmend në lidhje me TV në përgjithësi është se 520 00:31:39,040 --> 00:31:41,840 ju do të ndonjëherë të kandidojë në diçka të quajtur Shkalla e kufizuar, 521 00:31:41,840 --> 00:31:44,940 dhe ideja e kufizimit norma është që ju nuk doni që të abuzojnë TV. 522 00:31:44,940 --> 00:31:48,130 Me fjalë të tjera, ajo është me të vërtetë e bukur se shumë prej këtyre faqeve kanë TV 523 00:31:48,130 --> 00:31:51,070 që ju mund të shkoni në dhe të përdorni për të lira. 524 00:31:51,070 --> 00:31:54,460 Megjithatë, nëse ju jeni duke e bërë miliona apo miliarda e kërkesave në ditë, 525 00:31:54,460 --> 00:31:57,610 për shembull, nëse ju jeni të mbërthyer në një lak pafund që është pafundësisht querying 526 00:31:57,610 --> 00:32:00,680 disa lloj API dhe duke u kthyer një sasi të madhe të të dhënave, 527 00:32:00,680 --> 00:32:04,570 natyrisht që nuk është e mirë, kështu që çfarë është një shumë e TV bëni është të ketë kjo normë kufizimin funksion 528 00:32:04,570 --> 00:32:09,970 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ë. 529 00:32:09,970 --> 00:32:12,540 Dhe në qoftë se ju jeni duke bërë një shumë të testimit dhe se gjë e tillë, 530 00:32:12,540 --> 00:32:14,890 ju do të ndonjëherë të kandidojë në atë, dhe papritmas ajo do të mbyllet ju off 531 00:32:14,890 --> 00:32:18,280 dhe i thuaj jo, unë nuk jam duke ju dhënë të dhëna të ndonjë më shumë. 532 00:32:18,280 --> 00:32:20,000 >> Çfarë doni të bëni është të luajnë sipas rregullave. 533 00:32:20,000 --> 00:32:22,950 Ju dëshironi të bëni të sigurtë që ju lexoni spekulim API kujdes. 534 00:32:22,950 --> 00:32:26,330 Në qoftë se ka disa rregulla bashkangjitur me të, si ju mund të bëni vetëm pyetje në ditë X 535 00:32:26,330 --> 00:32:30,000 ose ju mund të hyni në një pjesë të bazës së të dhënave një numër të caktuar herë 536 00:32:30,000 --> 00:32:32,900 ose diçka të tillë që ju doni të bëni të sigurtë që ju rrinë në atë. 537 00:32:32,900 --> 00:32:38,360 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. 538 00:32:38,360 --> 00:32:42,030 Takeaway juaj i përgjithshëm është TV janë me të vërtetë, me të vërtetë të dobishme. 539 00:32:42,030 --> 00:32:45,610 >> Ka një API për pothuajse çdo shërbim web të mëdha atje. 540 00:32:45,610 --> 00:32:50,700 Pretty much çdo pjesë e Suite Tools Google, Google Maps, Google Earth, 541 00:32:50,700 --> 00:32:54,390 GMail, Google Calendar, të gjitha ato gjëra kanë TV. 542 00:32:54,390 --> 00:32:58,280 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. 543 00:32:58,280 --> 00:33:00,870 Me fjalë të tjera, në qoftë se ju të kërkuar për të bërë një app kalendar që mund të rinovuar 544 00:33:00,870 --> 00:33:04,190 Kalendari Google dikujt, ka një API për këtë. 545 00:33:04,190 --> 00:33:07,810 Nëse ju doni të bëni diçka që është duke shkuar për të treguar se ku 546 00:33:07,810 --> 00:33:12,530 vendndodhja e një adresë të caktuar është që ju mund të përdorni Google Maps API për këtë. 547 00:33:12,530 --> 00:33:15,860 TV janë fantastike të dobishme, dhe ata janë kudo. 548 00:33:15,860 --> 00:33:18,700 Nëse jeni të interesuar në ndonjë lloj ideje, 549 00:33:18,700 --> 00:33:22,170 ka ndoshta një API të lidhura që ju mund të përdorni për të marrë një shumë të të dhënave 550 00:33:22,170 --> 00:33:25,060 shumë shpejt dhe shumë thjesht. 551 00:33:25,060 --> 00:33:28,140 >> Nëse ju jeni ende duke kërkuar për një projekt ose në qoftë se ju vetëm doni të luajnë rreth 552 00:33:28,140 --> 00:33:31,820 me diçka në përgjithësi, TV janë patjetër me vlerë duke bërë. 553 00:33:31,820 --> 00:33:37,200 Faleminderit, dhe unë jam i lumtur për të përgjigjen për çdo pyetje që ju djema mund të ketë. 554 00:33:37,200 --> 00:33:44,900 Mirë, faleminderit shumë. 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]