[Powered by Google Translate] [Semina] [programu ya Utangulizi wa APIs] [Billy Janitsch] [Chuo Kikuu cha Harvard] [Tommy MacWilliam] [Hii ni CS50.] [CS50.TV] Hi, kila mtu, mimi nina Billy, na leo mimi naenda kuwa na kuzungumza kuhusu APIs, au maombi ya programu interfaces, hasa katika muktadha wa miradi CS50 mwisho na kwamba aina ya kitu. Kwa ujumla ni nini API? Katika suala pana sana, ni mtu wa namna katikati ambayo inaruhusu vipande 2 ya programu ya kuwasiliana na kila mmoja. Hiyo ni aina ya ufafanuzi mpana sana na si kwamba husika kwa nini sisi tunataka. Nini sisi kweli unataka ni aina fulani ya ardhi manufaa katikati kuwasiliana na baadhi ya aina ya database mahali fulani. Hapa ni chati, na kimsingi wazo ni kwamba sisi ni maombi, na tunataka kupata data kutoka database, lakini sisi hawataki swala database moja kwa moja. Badala yake tunataka kwenda kwa njia ya aina hii ya mtu katikati, API. Dhana ya kwamba ni idadi 2 na 3 kwenye chati ni wawili kwenda kuwa ngumu sana na messy. Kwa maneno mengine, wakati API ni querying database, ni pengine itakuwa ni ya kutumia meza SQL na wote wa aina hiyo ya mambo, na tumejifunza kidogo kuhusu hilo katika CS50, lakini kwa ujumla, ve niliona kuwa ni kidogo ya maumivu. Ni anapata sana, ngumu sana na messy, hasa wakati wewe ni kufanya tata maswali na kwamba aina ya kitu. Nini sisi kweli unataka ni aina fulani ya njia muhimu na rahisi kupata data kwamba, na kwamba ni wazo nyuma ya namba 1 na 4 kwenye chati. Kwa maneno mengine, tunataka njia ya kweli rahisi kuwaambia API nini kupata kwa ajili yetu na njia ya kweli rahisi kupata data kwamba nyuma. Kuna moja kuu njia ambayo data kwamba ni kawaida alimtuma na kupokea, ambayo ni JSON, au JavaScript nukuu Object. Hiyo inaweza kutofautiana kidogo mbali kama jinsi ya kutuma ombi kwa API. Kwa maneno mengine, kama unataka baadhi kiasi fulani ya data, jinsi kumweleza API kupata kwamba data wanaweza kutofautiana kidogo. Kawaida inahusisha kufanya baadhi ya aina ya ombi la mtandao. Kwa maneno mengine, kupata aina fulani ya URL ambayo inaenda kuwaambia API hasa unataka nini, lakini data ni karibu daima kurejea, kwa maneno mengine, idadi 4 katika JSON. Nini ni JSON hasa? Kama nilivyosema, JavaScript Object nukuu. Ni kimsingi kiwango zima kwa ajili ya kupeleka na kupokea data. Wazo ni kwamba, una makundi 3 ya mambo haya. Una arrays hashmaps, na primitives. Arrays na hashmaps wewe Tumeangalia katika kidogo katika CS50, lakini umefanya aina ya kujipatia hisia kali sana ya nini hao. Kwa maneno mengine, kwa arrays unajua kwamba wao ni aina ya amefungwa, hivyo wewe tu moja aina ya aina ya kwamba huenda katika safu nzima. JSON ni mengi zaidi lenient na kwamba aina ya kitu. Kimsingi wazo ni wewe kujenga hii kitu, ambayo inaweza linajumuisha yeyote mambo haya 3 na inaweza linajumuisha wale nyingi wao, na wanaweza kuwa nested. Aina Hapa ya mfano wa JSON, ambayo ni haya mabano curly hapa kuwakilisha hashmap yako, na hashmap kimsingi ni ramani kutoka kwa baadhi ya aina ya ufunguo kwa baadhi ya aina ya thamani. Utaona hapa kwamba tuna muhimu mali, na kwamba ramani kwenye safu, ambayo ni jambo hili lote. Sisi kuona mwingine kipengele cha hashmap, ambayo ni hii isAwesome muhimu, ambayo ramani kwa thamani duni wa kweli, kwa maneno mengine, bulin. Primitives inaweza kuwa masharti. Wanaweza kuwa integers. Wanaweza kuwa bools, jambo kama hilo. Na unaona yaliyomo ya safu hii kwamba mali pointi ina masharti 2 ndani yake, binafsi sawa na ya ajabu. Wale ni mali ya 2 JSON, na sisi kuona kwamba JSON ni wa kushangaza. Kuangalia kwamba kidogo karibu zaidi nitakacho kujenga mfano ngumu zaidi ya JSON hapa. Hebu kuanza na safu, kwa mfano, tu safu tupu. Lakini hiyo ni aina ya boring, hivyo sisi ni kwenda kujaza juu kidogo, na kama nilivyosema, arrays katika JSON ni aina amefungwa, hivyo tunaweza pia kuwa string hapa, ambayo ni hi, na kwamba ni mwingine kipengele cha safu hiyo. Na vivyo hivyo, tunaweza kuongeza hashmapping hapa, ambayo ni kwenda na upangaji chache. Ni kwenda na ramani kutoka kwa jina Billy kamba. Tuna ramani kutoka kwa jina Billy, na tuna ramani ya favorite rangi ya bluu. Hiyo ni kimsingi mfano mzuri wa JSON. Ni aina ya anapata katika-Whoops, haja comma kuna-aina ya sehemu mbalimbali ya hiyo. Tena, siyo aina amefungwa wakati wote, hivyo unaweza kuwa na aina yoyote ya aina ya ndani ya kitu chochote unataka, na wazo ni ni self-sawa. Kwa maneno mengine, haki hii hapa ni kitu JSON, kama ni jambo hili zima, kama ni tu hii, hivyo unaweza kuwa na mali kuwa kitu, safu kuwa kitu au hashmap kuwa kitu. Kama unaweza aina ya kuona, JSON ni kweli, kweli muhimu katika kuwa ni hivyo versatile. Unaweza kuwa na data yoyote inawezekana kwamba unaweza mimba kuhifadhiwa katika JSON. Kwamba inafanya lugha nzuri kwa kweli kutumia na APIs kwa sababu ni kiasi pretty ina maana kwamba hakuna jambo gani data ambayo unataka kuna kwenda kuwa baadhi ya njia ya kupata nyuma katika JSON. mali chache kwamba kufanya JSON hasa nzuri kwa aina hii ya kitu. Kama unaweza kuona, ikilinganishwa na mambo mengi ambayo tumekuwa kazi na katika CS50 ni comparatively rahisi sana kusoma na pia rahisi sana kuandika. Unaweza Indent nje kama unataka, kama mimi alikuwa akifanya katika mfano kwamba, ambayo inakupa nice, pretty toleo kwamba unaweza kuona vizuri. Lakini zaidi ya hayo, pia ni rahisi kusoma na kuandika kwa ajili ya kompyuta. Kwa maneno mengine, ni rahisi kupambanua na rahisi encode, ambayo ina maana kwamba ni pretty kufunga mbali kama kusoma data ni wasiwasi, na JSON unaweza kuzalishwa kweli haraka. Ni pia ni rahisi sana kupata sehemu mbalimbali za JSON na kwamba aina ya kitu. Hiyo ni nzuri, na zaidi ya hapo, ukweli kwamba ni self-sawa, kwa maneno mengine, ukweli kwamba unaweza kuwa na JSON ndani ya JSON ndani ya JSON ni nzuri kwa kweli kwa ajili ya kuhifadhi data. Sehemu nyingine ambayo ni muhimu kweli kweli kwa ujumla katika kufanya kazi na APIs ni jQuery. Wewe wameweza kujifunza kidogo ya JavaScript, ambayo ni njia nzuri kuendesha HTML na CSS ndani ya tovuti. Lakini unaweza aina ya kuwa maumivu kwa kificho katika JavaScript wazi, kiasi kikubwa kwa sababu JavaScript ni kweli verbose lugha. Inakubidi kujifunza mengi ya kisintaksia, na tu kufanya mambo rahisi sana inachukua mengi ya kificho, hivyo jQuery ni maktaba kwa JavaScript. Kwa maneno mengine, ni faili JavaScript kwamba unaweza kupakia na kisha kutumia kazi jQuery kufanya mambo fulani. Na jQuery kimsingi inafanya maisha yako mengi yote rahisi. Ni simplifies gani kuchukua mamia ya mistari katika JavaScript chini mistari michache katika jQuery. Ni muhimu hasa kama wewe ni kutumia APIs kwa sababu kwa ujumla jinsi wewe utakuwa kupata APIs ni kwa kufanya maombi ya AJAX, na naamini Daudi ametaja katika hotuba kwamba AJAX maombi ujumla wakati wewe ni kufanya ombi la mtandao kwa baadhi ya aina ya seva na kupata nyuma baadhi ya aina ya data na uppdatering ukurasa mara moja. Wakati katika JavaScript wazi kwamba ingekuwa kuchukua namba mambo ya mistari kuhalalisha yote ya headers na kufanya yote ya kwamba aina ya mambo, jQuery ina kazi kweli rahisi kuitwa AJAX, na wote una kufanya katika AJAX ni kutoa vigezo kwamba unataka kutoa API, eneo la API na aina yoyote ya ziada ya chaguzi kwamba unataka configure. Ni kweli, kweli nzuri na muhimu sana kwa ajili ya aina hii ya kitu. Hayo ni yote tunahitaji kuanza kupata mikono yetu chafu katika APIs. Mimi naenda kuleta mifano michache na kuchunguza mali zao mbalimbali na kwa nini wao uko muhimu kwa ajili ya aina tofauti ya mambo. Jambo la kwanza mimi itabidi kweli kuonyesha ni kitu ambacho mimi nina kazi ya katika utafiti maabara yangu, ambayo ni mtazamaji Ngram, na kimsingi wazo la mtazamaji Ngram ni unaweza kutafuta aina fulani ya neno au maneno na kuona jinsi mara nyingi ni alionekana katika kuweka baadhi ya maandishi juu ya muda. Hii mfano hapa ni kuweka hii data ya watoto kwamba walizaliwa katika New York kati ya 1920 na 2000. Tunaweza kutafuta, kwa mfano, kwa jina Jennifer, na sisi kuona kwamba kabla ya miaka ya 1960, ni kweli alikuwa hatumiki kiasi kwamba wote, na kisha kama sisi kupata katika miaka ya baadaye ni akikosa hutumiwa zaidi na zaidi. Tunaweza pia kufanya kulinganisha, hivyo kama sisi kulinganisha Jennifer, kwa mfano, Thomas, tunaweza kuona Thomas imekuwa pretty imefikia katika historia, ambapo Jennifer ni jina zaidi ya hivi karibuni. Tunaweza kufanya jambo la aina hiyo. Jinsi gani hii ya maombi ya kazi? Kimsingi, ni kazi kupitia API. Kwa maneno mengine, tuna vigezo fulani hapa. Tuna vigezo ya tulichokuwa kwa ajili ya kutafuta, ambayo ni majina haya, na kisha tuna chache mali nyingine, kama mhimili Y na mhimili X. Unaweza kuona tuna wachache chaguzi mbalimbali mbali kama wakati azimio kutumia na aina ya kitu. Sisi na chaguzi hizi mbali kama kile data sisi kweli unataka kutoka orodha, na tunataka kupata data kwamba nyuma katika baadhi ya njia muhimu. Kwa kawaida, kama sisi walikuwa querying database moja kwa moja itakuwa ya aina ya kuwa maumivu ya kufanya kwa sababu hii huenda ikatengeneza data kuhusu majina ya mtoto anaishi katika database baadhi mahali fulani, na itakuwa ngumu kweli kuwa na swala hilo manually na kuamua nini hasa data kurudi. Kwa maneno mengine, sisi tu huduma ya juu Jennifer na Thomas katika kesi hii, na sisi tu huduma ya juu kwenye mhimili mmoja na yote ya kwamba aina ya mambo ya ajabu. Jinsi gani sisi kupata kote hii? Kuchimba ndani ya API hii kidogo zaidi nitawaonyesheeni mfano mwingine wa jukwaa hili ambayo inatumia data tofauti kidogo ya kuweka. Hii seti data, badala ya kuwa mtoto majina, ni kweli tu nzima magazeti ya uchapishaji database ya Maktaba Open, ambayo ni chanzo kubwa ya maandiko ya kuchapishwa katika miaka 100 iliyopita au hivyo. wazo ni sisi kuwa hii compository ya mamilioni na mamilioni ya maandishi, ambayo sasa tunaweza kutafuta maneno tofauti na misemo in Hapa ni mfano kwamba hutofautiana kidogo tofauti na mfano uliopita Nilikuonyeshea, ambayo ni sisi kuwa haya maswali tafuta 3, vita, vita, na neno la Kifaransa kwa vita, ambayo ni guerre. Na sisi ni kutafuta ndani ya sehemu 3 tofauti ya database jumla. Kwa maneno mengine, katika hoja hii ya kwanza tuko tu kutafuta katika Marekani, katika moja ya pili tu katika Uingereza, na ya tatu tu kutokana na matendo kuchapishwa katika Ufaransa. Tunaona baadhi mifumo ya kuvutia kuibuka. Kwa mfano, tunaona haki kote hapa ambayo- oops, mimi messed up mhimili kidogo, lakini unaweza kuona haki katika mbalimbali huu hapa kuzunguka vita vya kiraia kuna Mwiba kubwa katika toleo la Marekani lakini si vile Mwiba kubwa katika watu wengine wawili, na kwamba ni wazi kwa sababu American Civil War kilichojitokeza katika hatua hiyo. Tunaweza kuona baadhi ya mambo ya baridi huko, lakini kile sisi kweli huduma kuhusu ni jinsi gani sisi got data hii. Nitachukua wewe nyuma ya pazia katika programu hii katika kidogo. hila nadhifu ni kama wewe ni kufanya kazi na tovuti na aina ya kutaka kujua nini kinaendelea nyuma ya pazia, unaweza kufungua zana developer. Mimi nina kwenda kuwa na kutumia zana developer Chrome, na kupata kwa wale unaweza kufanya kudhibiti, kuhama, J, na kwamba inachukua wewe console JavaScript. Kuna tabo chache hapa. Wanaweza wote kuwa pretty muhimu chini ya mazingira tofauti, lakini mimi huduma kuhusu mtandao tab sasa hivi, na mimi kweli kuwa na kupata mahitaji ya kupata kazi. Oh, sorry. Ni anapenda kutoa mfano random. Okay, tutaweza kutumia mfano badala basi. Wazo ni kuna API hii hapa, na unaweza kuona hasa nini API ni kurudi. Hii ni nini maombi ni kupata nyuma kutoka API na kupeleka ombi hilo. Hebu zoom katika kidogo, na tunaweza kuona kimsingi ni tu mfululizo wa jozi ufunguo thamani katika JSON. Kwa maneno mengine, tuna hii hashmap hapa hiyo ramani ya maadili. Kwa maneno mengine, ni ramani ya miaka kwa maadili. Katika 1765 chochote neno sisi awali searched kwa limetumika mara 90 nje ya milioni 1, hivyo sisi ni kupata nyuma matokeo haya. Ni si hasa JSON tangu tuna hiki kidogo matokeo header hapa, lakini taarifa kwamba hii kitu nzima hapa ni kubwa tu kubwa JSON Blob. Tuna safu hapa ambayo ina kipengele hii nzima, na unaweza kuona kwamba kipengele nzima inaishia hapo, na kisha sisi kuwa na mwingine kipengele kubwa kwamba huenda njia yote chini hadi mwisho, na kwamba mwisho hapa. Tuna safu kubwa kweli kweli na vitu 2 ndani yake, na kila moja ya vitu ni wale hashmap. Unaweza kuona ndani ya kila mmoja wa wale hashmaps tuna ramani ya thamani hii index 0 na thamani thamani hii kwa hashmap mwingine, ambayo tena ni ramani ya maadili mhimili X na maadili Y mhimili. Unaweza kuona JSON anapata kidogo kidogo ngumu, lakini kwa ujumla, ni kweli muhimu sana, na ni rahisi sana kupata ikilinganishwa na nyingine aina tofauti ya nukuu. Mbali kama tulichokuwa kutuma data kwa API kupata, Mimi nina kwenda ndani ya mwisho nyuma kidogo hapa. Hii ni kubwa JavaScript faili hiyo utunzaji wote wa mwingiliano wa programu ya mtandao, na hivyo sisi hawajali zaidi ya hii, lakini sisi kufanya huduma kuhusu baadhi ya hiyo. Kwa mfano, sisi huduma kuhusu kazi hii buildQuery, na wazo la kazi hii ni kimsingi ni kuangalia karibu ukurasa, kuhesabia nje nini user anataka swala, kwa maneno mengine, kuangalia masanduku hayo ambapo wameweza pembejeo tafuta masharti yao, kuangalia Y tofauti na maadili ya X mhimili kwamba wameweza waliochaguliwa na wote wa aina ya kitu, na ni kwenda mate nje thamani hii swala, ambayo siwezi kisha kutuma mbali na API. Hii inaonekana ngumu, na ni pretty ngumu lakini kile nitakacho kufanya-kwa kweli, mimi niko tayari kufanya hii, ambayo ni kubwa- ni kwamba mimi nina kwenda kupata console wa magazeti nje hasa kwamba swala thamani kwamba ni kutuma mbali na API. Hiyo ni kweli haki hapa. Samahani, ni matokeo ya mambo mengi. Lakini hii ni nini sisi huduma ya juu, hii kitu hapa hapa. Hii ni kitu swala. Kwa maneno mengine, hii ni nini hasa maombi ya mtandao ni kutuma kwa API, na hivyo hebu angalia ndani ya kidogo kidogo, na sisi kuona tuna maadili chache hapa. Sisi tunaona tuna aina hii kuhesabu, ambayo ni matukio kwa maneno milioni, ambayo ni hasa kile ambacho tumekuwa wateule katika mhimili Y zaidi ya hapa. Hiyo ambapo ule unaokuja kutoka. Tuna thamani database, ambayo ina maana kwamba kuna baadhi ya database fulani kuwa data hii ni wanaoishi katika, na tunataka kupata data kwamba hasa kinyume na mtoto data majina, kwa mfano. Basi tuna thamani hii, vikundi ambayo ni kusema kwamba tunataka kutafuta kwa mwaka kama kinyume na nyingine yoyote X mhimili thamani. Basi tuna mbinu, ambayo baadhi APIs kufanya mambo mbalimbali. Kwa maneno mengine, hii inaweza pia API kurudi aina nyingine ya data, lakini katika kesi hii, tunataka kuwa ramani ya maadili mhimili X na maadili Y mhimili. Hiyo ni nini anayekuambia ni kufanya huko, na tuna mipaka tafuta hii safu, ambayo ina maadili 2. moja ya kwanza ni kile sisi kuona hapa, ambayo ni aina ya maadili zilizomo ndani ya sanduku kwamba kwanza kidogo kwa juu. Kwa maneno mengine, tunataka kuangalia neno kwa ajili ya vita, na tunataka kwa chujio ni na maandiko ya Kiingereza katika fasihi ya Marekani. Tuna nchi hii, ambayo ni Marekani. Tuna lugha, ambayo ni lugha ya Kiingereza, hivyo tuna aina ya sehemu hizi tofauti kuwa ni wote kuwaambia API nini hasa tunataka. Hatujui nini data kwamba sisi kupata nyuma ni bado, lakini tunajua kwamba data ni kwenda kuchukua fomu fulani. Mfano huu ni aina ya upande ngumu, na wewe ingekuwa si lazima kutumia API hii tata, lakini hii ni kuonyesha wewe mbalimbali na nguvu ya kile APIs wanaweza kufanya. Kwa maneno mengine, kwa kutumia mfumo rahisi swala sisi kimsingi kuwa sanduku pembejeo na wachache selectors nyingine katika maeneo mbalimbali. Hebu zoom nyuma nje hapa. Tuna sanduku pembejeo na uchaguzi wachache tofauti metadata, na tuna Y mhimili na uchaguzi X mhimili. Sisi si kweli kuwa mashamba ya kwamba wengi, na tunaweza kuona kwa urahisi sana sisi ni uwezo wa swala aina fulani ya API na kupata data nyuma na kisha kuiweka katika chati hii, ambayo ni kisha kwenda kuonyesha ni katika njia muhimu. Kuangalia mfano mwingine kwamba inaweza kuwa kidogo zaidi ya ukoo na nyie tunakwenda kurejea kwa kuungana. API Facebook inaitwa Graph Facebook, na kimsingi kile kwamba maana ni Facebook anaona yenyewe kama database huu mkubwa ya kura ya sehemu mbalimbali kwamba wote wana uhusiano fulani kwa kila mmoja. Kwa maneno mengine, mimi nina mtumiaji kwenye Facebook, hivyo nina profile, na mimi pia kuwa na marafiki fulani, na kila mmoja wao ana profile, na kila mmoja wa rafiki yangu ana ukuta, ambayo ina maoni tofauti juu yake, na kila mmoja wa wale ana maoni likes na wote wa aina ya kitu. Kuna kura ya sehemu mbalimbali kwa Facebook. Ni API hugely tata, na kuna tani unaweza kufanya na hayo, lakini ni kweli pretty rahisi kutumia. Mimi naenda kuanza nje kwa kwenda graph.facebook.com / billyjanitsch, ambayo ni akaunti yangu ya kipekee jina, na akaunti yako jina ama kuwa baadhi ya aina ya neno kama umechagua, au ni ili tu kuwa string wa idadi. Nini sisi kupata nyuma ni pretty msingi habari. Tunaona kwamba nina jina la kwanza, ambayo ni Billy, jina la mwisho, ambayo ni Janitsch. Kuna kipekee Facebook ID niliyo nayo. Unaweza kuona kwamba mimi nina kiume na kwamba nina lugha yangu ya kuweka kwa Waingereza ya Kiingereza. Kwa maneno mengine, sisi ni kuona msingi sana habari hapa. Ni si sana, lakini haina kutupa wazo la nini huko. Tunaweza kufanya kitu kimoja kwa Daudi Malan, kwa mfano. Nadhani jina lake ni dmalan. Tunaona Daudi Malan ana ID kipekee. Yeye ana jina, jina la kwanza, kati jina, jina la mwisho. Tunaona pia kwamba yeye ni wa kiume na ina lugha yake kuweka Marekani Kiingereza. Kwa maneno mengine, sisi ni kuona pretty msingi habari hapa. Sasa, nini kitatokea kama sisi kujaribu kuangalia nje kitu kingine? Hebu sema mimi nina nia ya kile Daudi Malan ina walipenda juu ya kuungana. Naweza kufanya / anapenda. Sasa tumekuwa kukimbia katika tatizo. Sisi tumepewa baadhi ya aina ya makosa kwamba anasema ishara upatikanaji anahitajika kuomba rasilimali hii. Lakini kama wewe kufikiri juu yake, kwamba kwa kweli inafanya hisia kwa sababu itakuwa ni weird kama unaweza kupata kila sehemu moja ya database Facebook tu kutoka kwa baadhi ya aina ya API rahisi, sawa? Kwa maneno mengine, labda taarifa yako hayawezi kupatikana kwa mtu yeyote ambaye anataka. Kosa hili ni just nini maana ya. APIs baadhi ya kuhitaji ruhusa fulani ili kupata data zao. Na hata zaidi ya juu APIs, kama Facebook moja, itahitaji idhini fulani kufanya mambo fulani. Mimi naona hii taarifa za msingi kuhusu Daudi Malan. Mimi naona kwamba yeye ni wa kiume na kwamba anaishi nchini Marekani, lakini siwezi kuona kitu zamani hizo. Ili kupata karibu hii kwa sasa, Facebook ina zana hii nzuri ambayo ni graph API Explorer, na wazo la kwamba ni unaweza aina ya kufanya juu ya ruhusa kwa ajili ya wewe mwenyewe kwa kuzingatia akaunti yako mwenyewe na kisha kuona mambo ambayo hasa akaunti yako unaweza kuona. Kwa mfano, kama mimi kufanya graph.facebook.com/billyjanitsch/likes- Whoops, mimi nadhani kuwa kwa revalidate ishara wangu hapa. Sawa. Kama mimi kufanya hivyo tena, kubwa, na sasa naona kwamba mimi kupata hii kitu nyuma ambayo inasema kwamba mimi kama noodles bwawa, ambayo ni katika Michezo ya jamii na Toys. Mimi kama walruses, ambayo ni katika wanyama jamii. Hizi ni Facebook yangu halisi anapenda. Wao ni aina ya aibu. Lakini tunaweza kuona data hii yote ni alirudi JSON. Ni pretty someka. Kwa maneno mengine, tuna hii ramani ya data kwa baadhi ya aina ya safu, na kila kipengele cha safu hii ni hashmap ambayo ramani jina ya kama na jamii ya kama. Kila kama ana ID kipekee. Kuna kila aina ya mambo tofauti ya data kwamba tunaweza kupata, na kama wewe ni nia ya kutumia API Facebook kwa ajili ya mradi CS50 mwisho au kwa ajili ya jambo kama hilo ni kweli kabisa doable. Kimsingi jinsi ya kupata kuzunguka kitu uthibitishaji ni Facebook anatumia mfumo uitwao OAuth, au Uthibitishaji Open, na mimi sitaki kupata ndani yake kwa sababu sasa OAuth au aina tofauti ya uthibitishaji huelekea kutofautiana mengi kati ya APIs mbalimbali, ili niweze kutumia muda mrefu kwenda juu ya kila mmoja, lakini wao ni kweli pretty binafsi maelezo. Kama Google Facebook API ni sana someka. Kuna spec nzima. Kwa mfano, hii ni nyaraka kwa ajili ya API Facebook, na unaweza kuona mimi niko kwenye ukurasa mtumiaji, hivyo naweza kujifunza wote kuhusu aina mbalimbali ya mambo ambayo inapatikana kwa kupata data mbali kama na pia ruhusa tofauti kwamba mimi haja ili kuzipata. Kama tulivyoona, hatuna haja ya ruhusa ya kupata jina au jinsia, lakini zaidi kwamba sisi tunahitaji ruhusa kwa mambo mengi. Hii ukurasa, au tuseme, tovuti hii pia kukuambia jinsi ya kupata ishara kuwa na uwezo wa kuthibitisha mwenyewe. Wengi uthibitishaji mifumo kutumia aina fulani ya ishara ambapo unaweza kupata thamani hii ya kipekee, ambayo ni string kweli kwa muda mrefu na random, na njia ambazo zinaweza kuhusisha ombi kwamba wewe ni kufanya na wewe. Kwa maneno mengine, wao wanajua kwamba wewe si kufanya kitu chochote tuhuma na data zao. Wao kujua hasa ni nini wewe ni kupata. Wao pia kujua kuwa una ruhusa ya kuona kwamba habari. Kama umefanya programu Facebook na programu yako ina watumiaji fulani, na wale watumiaji na kuruhusiwa kwamba programu kufikia baadhi ya maeneo ya profile zao, ndipo kila API muhimu au ishara kwamba App kwamba ni kwa kutumia itakuwa na uwezo wa kupata data kwa watumiaji hao. Hii inaweza kuwa inasikika ngumu, lakini si mbaya sana, na kama unataka kutumia Facebook Napenda sana kupendekeza kwamba kufikiria kucheza karibu na API yao. Ni baridi sana, na unaweza kufanya mambo mengi tofauti na hayo. Kama mtumiaji misaada wewe ruhusa hizi unaweza hata kwenda nyuma API na kusema nataka kweli post ukuta huu wa mtumiaji, au nataka kuwa nao baada ya picha, na kwamba ni kwa nini juu ya habari kulisha yako utasikia wakati mwingine kupata mambo wale annoying akisema rafiki yako ina watched hii video juu ya baadhi ya aina ya tovuti weird au kitu kama hicho. Hiyo ni kwa sababu programu kwamba amepewa upatikanaji post juu ya ukuta kwamba mtu. wazo la jumla, API Facebook ni pretty ngumu lakini pia muhimu kweli kweli. Dhahiri thamani ya kuangalia nje kama wewe ni bado kuangalia kwa ajili ya mradi wa mwisho. Mwingine Suite ya APIs kwamba mimi nina kwenda juu ni CS50 APIs. Hebu zoom katika hapa. CS50 ina kweli kuweka pamoja mfululizo mzima wa APIs kwamba unaweza kutumia kwa ajili ya mradi wa mwisho au tu kwa ajili ya kitu chochote kwamba wewe ni maamuzi. Na wao ni zaidi ya Harvard kuhusiana, na wao kutofautiana kutoka menu HUDS, kwa mfano, hii Harvard Matukio API, ambayo basi wewe kupata orodha ya matukio tofauti ambayo ni kwenda katika Harvard na kwamba aina ya kitu. Na hivyo tunaweza bonyeza yoyote moja ya haya na kupata spec kwa ajili yake, ambayo wewe utakuwa na uwezo wa kupata kwa API yoyote, na wazo ni inakuwezesha kujua, hasa yale ya kuomba kutoka API na jinsi ya ombi hilo. Kwa maneno mengine, kama nataka matukio yote yanayotokea kesho basi mimi nimepata wazi kuwapa kwamba tarehe hiyo mimi nataka katika muundo fulani, A na B, itakuwa kuniambia nini hasa ni kwenda kutoa nyuma yangu. Ni kusema nitakacho kurudi wewe hii kitu JSON, au kama unaweza kuona, kuna format tofauti. Unaweza pia kurudi data kama CSV, kwa mfano. Lakini wewe kujua hasa jinsi data kwamba ni kwenda kuangalia wakati wewe kupata nyuma hivyo unaweza kutarajia kufanya mambo fulani kwa hayo. Tunaweza kitabu chini na kuona, kwa mfano, kama tunataka swala API kupata kalenda, basi tunaweza kutumia hii URL fulani na kuwapa vigezo fulani ambayo itakuwa ni ya data kwamba tunataka hasa. Na kadhalika, kama tunataka data nyuma katika muundo fulani, basi tunaweza kuuliza ni wa pato data katika CSV, na kwamba tu mwingine parameter kwamba sisi ni kupita kwa API. Kura ya mambo ya baridi kwa kufanya huko. Napenda dhahiri kupendekeza kuangalia nje APIs CS50. Mimi nina kwenda kuangalia API hii Chakula Harvard hasa kwa kidogo. Jambo moja Nimekuwa kwa kweli ni iliyoundwa hii Harvard Noms tovuti, ambayo inatumia CS50 Chakula API retrieve menu HUDS kwa siku. Na kwa watu shule za ugani, HUDS ni huduma dining katika Harvard. Nini kupata ni ukurasa huu ambayo ina yote ya milo kwa siku, hivyo tunaona ya chakula cha mchana. Tuna wachache makundi mbalimbali. Tuna maharage na kituo cha nafaka nzima. Tuna brown mchele kituo. Tunaweza kuona kwa brunch tuna vitu hivi chakula wachache. Kama sisi bonyeza juu yao, kisha sisi kupata taarifa lishe. Unaweza kuona hii ni habari ya lishe kwa Grapefruit, katika kesi wakashangaa. Na hivyo tena, tunakwenda rika ndani ya nyuma mwisho hapa kidogo na kuona nini hasa hii ni kufanya kupata data hii. Na zinageuka si kweli kuwa ngumu sana wakati wote. Faili hii inaonekana messy kidogo, lakini kukumbuka kwamba hii ni utunzaji tovuti nzima, na kama mimi kitabu chini tunaona mabadiliko data kazi huu. Sasa, tu kuwa wazi, hii imeandikwa katika CoffeeScript, ambayo ni lugha ambayo pengine si kuonekana mbele. Lakini ni pretty someka, hivyo mimi itabidi kutembea kwa njia hiyo kama ndiyo pseudocode. Lugha tarehe ni kazi ambayo kwenda kuchukua katika thamani ya tarehe hii, na ni pia kwenda kuchukua katika kwanza, ambayo sisi hawajali kama mengi. Lakini jambo muhimu ni kwamba ina hii tarehe, na tarehe hiyo ni siku kwamba tunataka kuomba yote ya vitu ya chakula kwa. Na kisha unaweza kuona tuna kidogo ya syntax hapa, ambayo ni ya kimsingi kuchanganua kwamba tarehe katika format someka. Kwa maneno mengine, API inahitaji tarehe katika format fulani. Huwezi tu kusema Novemba 16, 2012 AD. Itakuwa si kujua nini cha kufanya na kwamba. Ni anataka tarehe katika muundo maalum. Wote sisi ni kufanya hapa ni kuwapa hasa kwamba format, ambayo ni thamani ya mwaka halafu hyphen, thamani mwezi, mwingine hyphen na thamani tarehe. Na sisi pia kusema tunataka data kuwa pato katika JSON. Sasa sisi ni kufanya ombi hili AJAX, na kama nilivyoeleza awali, jQuery ina hii super manufaa AJAX kazi ambayo wote unahitaji kufanya ni bayana vigezo chache hapa chini, na nitakupa nyuma hasa unataka nini. Sisi ni kuwaambia kwamba URL sisi unataka kwenda ni hii CS50 Chakula API, ambayo sisi got kutoka spec. Sisi tunasema kwamba tunataka data katika JSON na kwamba tunakwenda kuwapa data hii ambayo tumekuwa hufafanuliwa hapa juu. Hii ni siku tunataka vitu ya chakula kwa. Na kisha wote sisi kufanya ni kufafanua baadhi ya aina ya kazi na mafanikio, ambayo kimsingi ni kile kinachotokea wakati API anarudi data hizo. Kwa maneno mengine, tumekuwa vifurushi up yote ya vigezo kwamba tunataka, ambayo katika kesi hii ni siku ya kwamba sisi unataka hiyo na ukweli kwamba tunataka kuwa katika JSON, na sisi alimtuma ni mbali na API, hivyo sasa API ni kusema, sawa, hapa ni data zako, I got it nyuma kwa ajili yenu. Tuna kazi ya mafanikio, ambayo ina maana kutokana na kwamba API mafanikio anarudi baadhi ya data, tunafanya nini kwa hayo? Na zinageuka kuwa wote sisi kufanya ni wito huu menu update kazi na chochote API amerejea, ili tuweze kutafuta kwamba na kuona kwamba wote sisi ni kufanya ni kutumia rundo la syntax mpya hapa update ya HTML na kuingiza data hii mpya. Nini hii inaruhusu ni sisi kuwa haya mishale upande aidha, na tunaweza bonyeza, na sasa sisi tunataka data kwa siku ya pili na tena kwa siku ya pili, na kila wakati ni uppdatering kwamba thamani ya tarehe na querying API, kupata nyuma baadhi ya data na kuweka katika tovuti. Tena, unaweza kuona, super, super manufaa. Programu yalinipeleka saa chache hack pamoja, na mimi kuwa na kidogo zaidi uzoefu, ni wazi, lakini wako CS50 mwisho wa mradi inaweza kuangalia kitu sana kama hii. APIs ni super nguvu kwa kiasi cha juhudi kwamba wao kuchukua. Jambo la mwisho mimi nina kwenda juu ni chache zaidi APIs kwa mapana. Mimi si kupata mbali ndani yao mbali kama nini kufanya hasa, lakini mimi nitakupa wazo la nini huko nje. 2 muhimu kweli kweli ndio, kama wewe ni nia ya uchambuzi au taswira au kitu kama hicho, ni Freebase na Wikipedia. Wikipedia-labda wewe wote kujua-ni free online elezo, na ni kweli ina API, hivyo kama unataka, kwa mfano, kupata yote ya maandiko na makala kwa ajili ya pweza unaweza kwa urahisi sana kufanya hivyo. Tu kusema hey, Wikipedia API, Ningependa data akarudi kama hii, na ningependa katika format hii, na makala Ningependa ni pweza, na haraka sana nitakupa nyuma kwamba habari. Hiyo inaweza kuwa kweli muhimu sana kama unataka kufanya baadhi ya aina ya tovuti kwamba mtazamaji bora kwa Wikipedia au kitu kama hicho. Freebase ni aina ya sawa, ingawa ni vigumu kidogo mbali kama API. Freebase ni kama Wikipedia katika kwamba ni elezo online ambayo ina kura na kura ya data tofauti kuhusu kila aina ya mada mbalimbali, lakini ni kuhifadhiwa katika database kimahusiano, ambayo ni tofauti kidogo kutoka Wikipedia. Wikipedia ina makala yake na makala wanaohusishwa na makala nyingine, lakini kwa sehemu kubwa, kama unataka data kwa pweza, wewe kwenda makala pweza, kupata data kwamba, na wewe kuwa na rundo la Nakala kuhusu pweza, hivyo kwamba ni kubwa. Freebase kazi kwa namna kidogo ngumu zaidi kwa kuwa kila kitu ni kuhusiana na mtu mwingine. Kwa maneno mengine, kama sisi ni kwa ajili ya kutafuta pweza basi ina rundo la makundi yanayohusiana na hayo. Kwa mfano, ni mnyama, ni maisha ya chini ya maji, ina baadhi ya joto la mwili. Mimi sijui. Na wote wa makundi hayo ni viungo kwa maeneo mengine ambapo unaweza kwenda kuona mambo kwa jamii hiyo. Kwa maneno mengine, pweza data kuweka ingekuwa yana kiungo data kuweka kwa wanyama wote, na kwamba itakuwa basi mimi hoja kuzunguka katika database kweli haraka. Hii inaweza kuwa muhimu sana kama wewe kufanya kitu kama kulinganisha. Kwa maneno mengine, kutokana na kitu fulani, unataka kuona kile kingine ni kuhusiana na kuona kile kingine ni si kuhusiana na. Kwamba aina ya kitu. Itakuwa muhimu katika idadi ya njia. Kama wewe ni kuangalia kwa zaidi ya changamoto na kuwa na uwezo wa kufanya baadhi ya mambo magumu zaidi Napenda kufikiria kuchukua kuangalia API Freebase. Lakini kwa kiasi kikubwa, Wikipedia ni mahali rahisi sana kwenda mbali kama kupata habari. Sehemu nyingine kwamba mimi itabidi kuangalia ni Last.fm, na mimi nina kweli kwenda kwenda kwenye tovuti ya katika kesi baadhi ya watu wasiokuwa na uzoefu, lakini kimsingi ni Last.fm muziki ladha na mapendekezo tovuti. Unaweza kufanya akaunti. Unaweza kuanza kuweka muziki kutoka muziki mchezaji yako na tovuti, na kimsingi itaanza kutoa mapendekezo muziki msingi juu ya nini kusikiliza. Kwa mfano, kama wewe kwenda profile yako ukurasa-hii ni yangu- unaweza kuona wewe kuwa na orodha ya hivi karibuni kusikiliza nyimbo. Unaweza kuona wasanii wa jumla favorite, wote wa aina ya kitu, na tena, kuna API kubwa nyuma Last.fm,  na unaweza kutumia kufanya kura na kura ya mambo kweli cool. Kwa mfano, nitakwenda kwa ukurasa rafiki ambaye ana hii Last.fm Vyombo vya tovuti. Hii ni kweli mwingine jukwaa kwamba kujengwa juu ya API Last.fm, na haina idadi ya mambo pretty kuvutia. Kama mimi kuingia na user jina langu, kwa mfano, Naweza kuomba ni kuzalisha wingu tag, kwa mfano, na kile ambacho kinaenda kufanya ni nipe nyuma sura ya muziki yote tofauti na aina ya kitu kwamba mimi kama kusikiliza. Jinsi ni kufanya hili? Sana kimsingi ni kusema kwa API Last.fm hapa mtumiaji huyu. Ningependa kujua genre ya wimbo kila kwamba wameweza milele kusikilizwa, na unaweza kufanya hivyo kwa kufanya pretty rahisi AJAX wito kwa API Last.fm. Utapata nyuma orodha kubwa, basi ni wazi na baadhi ya mambo mengine ni kuwa kufanyika kugeuka kuwa katika wingu neno, lakini unaweza kuona kwa ujumla ni rahisi sana kupata na rahisi sana kutumia. Kweli nice kwa idadi ya mambo. Nadhani hiyo ni juu ya yote mimi itabidi kusema kwa ujumla. Jambo la mwisho mimi itabidi kutaja kuhusu APIs kwa ujumla ni kwamba utasikia wakati mwingine kukimbia katika kitu kinachoitwa kiwango cha kikwazo, na wazo la kiwango cha kikwazo ni wewe hawataki vibaya APIs. Kwa maneno mengine, ni kweli nice kwamba mengi ya tovuti hizi kuwa na APIs kuwa unaweza kwenda na matumizi kwa ajili ya bure. Hata hivyo, kama wewe ni kufanya mamilioni au mabilioni ya maombi kwa siku, kwa mfano, kama wewe ni kukwama katika kitanzi usio hiyo infinitely querying aina fulani ya API na kupata nyuma kiasi kubwa ya data, wazi kwamba si nzuri, hivyo nini mengi ya APIs kufanya ni kuwa na kiwango hiki kikwazo kipengele kwamba anasema unaweza tu kutoa maombi ya 1000 kwa siku kwa kila anwani ya IP au kitu kama hicho. Na kama wewe ni kufanya mengi ya kupima na aina ya kitu, utasikia wakati mwingine kukimbia katika kwamba, ghafla itakuwa imefungwa wewe mbali na kusema hapana, mimi si kutoa data yoyote zaidi. Nini unataka kufanya ni kucheza na sheria. Wewe unataka kuhakikisha kwamba kusoma spec API makini. Kama ana sheria fulani masharti hayo, kama unaweza tu kufanya maswali X kwa siku au unaweza tu kupata sehemu ya database idadi fulani ya nyakati au kitu kama kwamba unataka kuhakikisha fimbo na kwamba. Muda mrefu kama wewe kucheza ndani ya sheria hizo pengine utasikia kuwa na wakati mzuri kutumia APIs. Takeaway yako kwa ujumla ni APIs ni kweli, kweli manufaa. Kuna API kwa karibu huduma yoyote kubwa mtandao huko nje. Pretty sana sehemu yoyote ya Google Vyombo Suite, Google Maps, Google Earth, GMail, Kalenda ya Google, mambo yote hayo na APIs. Unaweza kutumia yao kwa data wote kupata kutoka server na kutuma data kwa seva. Kwa maneno mengine, kama alitaka kufanya App kalenda ambayo inaweza update mtu wa Kalenda ya Google, kuna API kwa ajili hiyo. Kama unataka kufanya kitu ambacho kinaendelea kukuambia ambapo eneo la anuani fulani ni unaweza kutumia Google Maps API kwa ajili hiyo. APIs ni fantastically muhimu, na wao uko kila mahali. Kama wewe ni nia ya aina fulani ya wazo, kuna pengine API kuhusiana kwamba unaweza kutumia ili kupata mengi ya data haraka sana na sana tu. Kama bado uko kuangalia kwa ajili ya mradi au kama unataka tu kucheza karibu na kitu kwa ujumla, APIs ni dhahiri thamani ya kufanya. Shukrani, na mimi nina furaha na kujibu maswali yoyote kwamba guys wanaweza kuwa. Sawa, shukrani sana. [CS50.TV]