[Powered by Google Translate] [Seminaras] [programuotojas su API] [Billy Janitsch] [Harvardo universiteto] [Tommy MacWilliam] [Tai CS50.] [CS50.TV] Sveiki, visi, Aš esu Billy ir šiandien aš norėčiau kalbėti apie API, arba taikomųjų programų sąsajos, konkrečiai CS50 galutinių projektų kontekste ir kad dalykas rūšiuoti. Apskritai, kas yra API? Labai bendrais bruožais, tai tarsi viduryje vyras, kuris leidžia 2 vnt programinės įrangos bendrauti vieni su kitais. Tai labai platus apibrėžimas natūra ir nėra, kad už tai, ką mes ieškome aktualus. Ką mes tikrai norime, yra kažkoks naudingos vidurį bendrauti su tam tikra duomenų bazės kažkur. Štai diagrama, ir iš esmės idėja yra, kad taikymas, ir mes norime gauti duomenis iš duomenų bazės, bet mes nenorime, tiesiogiai duomenų bazėje vykdyti užklausą. Vietoj to, mes norime eiti per šį viduryje vyras, API rūšiuoti. Už, kad idėja yra numeriai 2 ir 3 diagramoje abu bus labai sudėtingas ir nepatogus. Kitaip tariant, kai API užklausų į duomenų bazę, tai tikriausiai bus naudojant SQL lenteles ir visus, kad daiktų rūšiuoti, ir mes sužinojome, šiek tiek apie tai, CS50, bet apskritai, jūs pastebėjote, kad tai šiek tiek skausmo. Jis labai, labai sudėtingas ir nepatogus, ypač kai jūs darote sudėtingų užklausų ir kad dalykas rūšiuoti. Ką mes tikrai norime, yra kažkoks naudinga ir paprastas būdas gauti, kad duomenis, ir kad už 1 ir 4 numeriais ant grafiko idėja. Kitaip tariant, mes norime tikrai paprastas būdas papasakoti API ką gauti už mus ir tikrai paprastas būdas gauti, kad duomenis atgal. Yra vienas pagrindinis būdas, kad šie duomenys paprastai yra siunčiami ir gaunami, kuris yra JSON arba JavaScript Object Notation. , Kad gali šiek tiek skirtis, kiek, kaip jūs API siųsti prašymą. Kitaip tariant, jei norite šiek tiek tam tikrą kiekį duomenų, kaip jums pasakyti API gauti, kad duomenys gali skirtis šiek tiek. Paprastai ji apima tam tikrą tinklo prašymu. Kitaip tariant, gauti tam tikrą URL, kad manimi vyksta pasakyti API būtent tai, ko norite, bet duomenys yra beveik visada siunčiami atgal, Kitaip tariant, numeris 4 JSON. Kas yra JSON tiksliai? Kaip jau sakiau, JavaScript Object Notation. Tai iš esmės yra universalus standartas duomenų perdavimą ir gavimą. Idėja yra ta, kad jūs turite šias 3 kategorijas dalykų. Turite masyvų, hashmaps ir primityvai. Matricas ir hashmaps jūs pažvelgė šiek tiek CS50, , bet jūs tarsi Dotarłeś labai siaurąja prasme, ką jie. Kitaip tariant, su matricomis žinote, kad jie tipo jungiasi, todėl jūs turite tik vienos rūšies tipo, kad eina per visą masyvą. JSON yra daug švelnesnis, kad dalykas rūšiuoti. Iš esmės idėja yra jūs statyti šį objektą, , kuris gali būti sudarytas iš bet kurį iš šių 3 dalykų ir gali būti sudarytas iš kelių tie iš jų, ir jie gali būti sujungti. Štai tarsi pavyzdžiui JSON, kuris yra šios garbanotas skliausteliuose atstovauti savo HashMap, HashMap iš esmės yra kai kurie pagrindinių rūšiuoti atvaizdavimą kažkoks vertės. Jūs pamatysite, kad mes turime savybių klavišą, ir tai fiksuoti ant masyvo, kuris yra visas šis dalykas. Mes matome kitą HashMap elementą, kuris yra tai raktas isAwesome, žemėlapiai primityvios tiesa vertės, kitaip tariant, boolean. Primityvai gali būti stygos. Jie gali būti sveikasis skaičius. Jie gali būti bools, kas nors panašaus. Ir pamatysite turinį, kad šio masyvo savybės taškų turi 2 eilutes, savarankiškai panašūs ir nuostabus. Yra 2 savybės JSON, ir mes matome, kad JSON yra awesome. Pažvelgti, kad šiek tiek labiau aš ruošiuosi statyti sudėtingesnis pavyzdys JSON čia. Pradėkime su masyvo, pavyzdžiui, tik tuščias masyvas. Bet tai tarsi nuobodu, todėl mes ketiname užpildyti jį šiek tiek, ir kaip sakiau, JSON masyvai tipas yra susietas, , todėl mes taip pat galėtų turėti eilutę, kuri yra hi, ir tai dar to masyvo elementas. Ir taip pat, mes galime pridėti hashmapping čia, kuris ketina turėti keletą rodymo. Jis ketina turėti žemėlapių iš pavadinimo styginių Billy. Mes turime planus iš pavadinimo Billy, ir mes turime pasiskirstymas mėgstamiausia spalva mėlyna. Tai iš esmės geras pavyzdys, JSON. Jis rūšies gauna į-oi, reikia kablelį ten visus skirtingų dalių. Vėlgi, tai ne tipo, privalo ne visiems, todėl jūs galite turėti bet kokio pobūdžio tipai viduje viską, ką nori, ir idėja yra tai savarankiškai panašūs. Kitaip tariant, tai čia yra JSON objektas, kaip visas šis dalykas, kaip tik tai, kad jūs galite turėti primityvus objektas, masyvas, objektas ar HashMap objektas. , Kaip jūs galite rūšies pamatyti, JSON yra tikrai, tikrai naudinga tuo, kad tai labai universalus. Jūs galite turėti visus galimus duomenis, kad jūs galite įsivaizduoti saugomi JSON. Kad daro tai tikrai gražus kalbą naudoti su API , nes jis labai daug reiškia, kad nesvarbu, kokie duomenys, kad norite ten bus koks nors būdas gauti jį atgal JSON. Prieš keletą savybių, kurios JSON ypač tinka šis dalykas rūšiuoti. Kaip matote, palyginti su daug dalykų, kad jūs buvote darbo su CS50 tai palyginti labai lengva skaityti, ir taip pat labai lengva rašyti. Galite įtraukti jį, jei norite, kaip aš darau tame pavyzdyje, , kuri suteikia jums gražus, gana versiją, kad jūs galite pamatyti tikrai gerai. Be to, tai taip pat lengva skaityti ir rašyti kompiuterio. Kitaip tariant, tai lengva apdoroti ir lengva koduoti, kuris reiškia, kad ji gana greitai, kiek skaitant duomenis, ir JSON gali būti sukurtas labai greitai. Taip pat labai lengvai prieiti prie skirtingų dalių JSON ir kad dalykas rūšiuoti. Tai gražus, ir be to, tai, kad ji savarankiškai panašūs, Kitaip tariant, tai, kad jūs galite turėti per JSON JSON JSON per yra tikrai gražus saugoti duomenis. Kita dalis, kuri paprastai yra tikrai naudinga dirbti su API yra JQuery. Jūs sužinojote šiek tiek "JavaScript", kuri yra puikus būdas manipuliuoti HTML ir CSS per svetainę. Bet ji negali rūšies skausmas paprasto JavaScript kodas daugiausia dėl to, kad "JavaScript" yra tikrai verbose kalba. Jūs turite išmokti daug sintaksės ir tiesiog daryti labai paprastus dalykus ji užima daug kodo, todėl JQuery yra JavaScript biblioteka. Kitaip tariant, tai "JavaScript" failą, kad galite įkelti ir tada naudoti jQuery funkcijas, daryti tam tikrus dalykus. Ir jQuery iš esmės padarys jūsų gyvenimą daug lengviau. Tai supaprastina kas būtų priimti šimtus eilučių "JavaScript", kad kelios linijos JQuery. Tai ypač naudinga, jei jūs naudojate API, nes paprastai kaip jūs jungiatės prie API AJAX prašymus, ir aš manau, Dovydas paminėta paskaitą, kad AJAX prašymai paprastai, kai jūs darote prašymą kažkoks serverio tinklo ir gauti kažkokią duomenų ir atnaujinti puslapį akimirksniu. Kadangi paprasto JavaScript, kad būtų atsižvelgiama beprotiškas numeriai maršrutų patvirtinti visas antraštes ir padaryti viską, kad daiktų rūšiuoti, JQuery yra tikrai paprasta funkcija vadinama AJAX, ir viskas, ką turite padaryti, AJAX parametrus, kuriuos norite suteikti API, API vieta ir bet koks papildomas galimybių rūšiuoti, kurį norite konfigūruoti. Tai tikrai, tikrai gražus ir labai naudinga šios rūšies dalykas. Kad visi mes turime pradėti gauti savo rankas purvinas API. Aš ruošiuosi auklėti kelis pavyzdžius ir ištirti jų skirtingas savybes ir kodėl jie naudingi įvairių dalykų. Pirmas dalykas, aš iš tikrųjų parodyti jums, yra kažkas, kad aš dirbu mano tyrimų laboratorijoje, kuri yra Ngram Viewer, ir iš esmės idėja, yra Ngram Viewer galite ieškoti tam tikrą žodį, ar frazė ir pamatyti, kaip dažnai jis pasirodė tam tikrą rinkinį teksto laikui bėgant. Šis pavyzdys yra tai duomenų rinkinys kūdikių kad gimė Niujorke tarp 1920 ir 2000 m. Mes galime ieškoti, pavyzdžiui, pavadinimą Jennifer ir mes matome, kad 1960-ųjų ji tikrai buvo naudojama ne visi, kad daug, ir tada kaip mes gauname į vėlesniais metais jis tampa vis plačiau naudojami. Mes taip pat galime padaryti palyginti, todėl, jei mes palyginti Jennifer, pavyzdžiui, Thomas, mes galime pamatyti, Tomas buvo gana paplitę per visą istoriją, kadangi Jennifer yra naujesnis pavadinimas. Mes galime padaryti, kad rūšies dalykas. Kaip veikia ši programa darbas? Iš esmės, ji veikia per API. Kitaip tariant, mes turime tam tikrus parametrus. Mes turime apie tai, ką mes iš tikrųjų ieško parametrus, šie pavadinimai ir tada mes turime keletą kitų savybių, kaip Y ašies ir X ašis. Jūs galite pamatyti, mes turime keletą skirtingų galimybių, kiek rezoliuciją ir kad dalykas rūšiuoti. Turime šias galimybes kiek, kokius duomenis mes iš tikrųjų nori iš duomenų bazės, ir mes norime keletas naudingų gauti, kad duomenis. Paprastai, jei mes užklausų duomenų bazę tiesiogiai, kad būtų rūšiuoti skausmas daryti nes turbūt tai duomenys apie kūdikių vardai gyvena tam tikru duomenų bazę kažkur, ir jis bus tikrai sudėtinga jį rankiniu būdu užklausą ir nuspręsti, kokius duomenis grįžti. Kitaip tariant, mes tik rūpi Jennifer ir Thomas, šiuo atveju, ir mums rūpi tik tam tikrą ašį ir visos tos stuff rūšiuoti. Kaip mes apie tai? Kasti į šį API šiek tiek daugiau, aš jums parodysiu, kitą šios platformos pavyzdys naudoja šiek tiek skirtingus duomenų rinkinį. Šis duomenų rinkinys, vietoj to, kad kūdikių vardai, iš tikrųjų tik visa spausdinti leidinį atviro bibliotekos duomenų bazę, kuris yra didžiulis šaltinis dokumentus, paskelbtus per pastaruosius 100 metus ar panašiai. Idėja, mes turime šį teksto milijonus compository dabar mes galime ieškoti įvairių žodžių ir frazių in Štai pavyzdys, kad skiriasi šiek tiek skiriasi nuo ankstesniame pavyzdyje Aš parodė jums, o tai, kad mes turime šiuos 3 paieškos užklausas, karas, karas ir karo prancūzų kalbos žodis, kuris yra Guerre. Ir mes ieškome 3 skirtinguose skyriuose, visos duomenų bazės. Kitaip tariant, šiame pirmajame užklausą mes tik ieško, JAV, Antroje dalyje tik Jungtinėje Karalystėje, ir tik trečdalis Prancūzijoje kūriniai paskelbti. Mes matome, atsiras įdomių modeliai. Pavyzdžiui, matome, dešinėje maždaug čia- Oi, aš messed up ašies šiek tiek, bet jūs galite pamatyti šiame diapazone čia apie pilietinio karo didelis smaigalys Amerikos leidimas tačiau nėra toks didelis smaigalys kitų dviejų, ir tai akivaizdu, nes Amerikos pilietinis karas vyksta tame taške. Mes galime pamatyti keletą įdomių dalykų ten, bet tai, ką mes tikrai rūpi, kaip mes turime šiuos duomenis. Aš jus už šį šiek tiek app scenos. Tvarkingas fokusas yra, jei dirbate su svetaine ir rūšies nori žinoti tai, kas vyksta užkulisiuose, galite atidaryti Developer Tools. Aš ketinate naudoti Chrome "Kūrėjo įrankiai ir gauti tiems, jūs galite padaryti, kontrolės, Shift, J, ir kuris nukelia jus į "JavaScript" konsolė. Yra keletas skirtukus. Jie visi gali būti labai naudinga esant kitokioms aplinkybėms, bet man rūpi tinklo skirtukas dabar, ir aš iš tikrųjų turi atnaujinti, kad būtų gauti, kad darbo. Oi, atsiprašau. Jis mėgsta atsitiktinį pavyzdį. Gerai, mes naudojame šį pavyzdį, o ne tada. Idėja yra, ten tai API čia, ir jūs galite pamatyti, ką API grįžta. Tai yra tai, ką paraiška gauti atgal API išsiunčia šį prašymą. Leiskite man padidinti šiek tiek, ir mes galime iš esmės tai tik pagrindinių vertės porų serijos JSON. Kitaip tariant, mes turime šį HashMap čia, kad manimi, apibūdinantį vertybes. Kitaip tariant, tai fiksuoti metų vertybes. 1765 m, bet žodis, kurį mes iš pradžių ieškojo 90 kartus iš jau dalyvavo 1 mln, todėl mes grįžti šį rezultatą. Tai ne visai JSON, nes mes turime tai mažai rezultatų antraštę čia, , tačiau atkreipkite dėmesį, kad visas šis objektas čia yra tik labai didelis JSON lašelis. Mes turime masyvą, kuriame yra visą šį elementą, ir jūs galite pamatyti, kad visa elementas baigiasi, ir tada mes turime dar vienas didelis elementą kad eina visą kelią žemyn iki galo, ir kad baigiasi čia. Mes tikrai didelis masyvas su 2 objektų, ir kiekvienas iš šių objektų HashMap. Jūs galite pamatyti per kiekvieną iš tų hashmaps turime žemėlapių šio indekso vertė 0 ir ši vertė vertę į kitą HashMap, kuris vėl fiksuoti X ašyje vertės į y ašį vertės. Jūs galite pamatyti, JSON pasireiškia šiek tiek sudėtinga, tačiau apskritai, tai tikrai labai naudinga, ir tai labai lengva naudotis, palyginti su ir įvairių kitų užrašymo formos. Kiek tai, ką mes iš tiesų siunčia duomenis į API gauti, Aš ruošiuosi eiti į nugaros pabaigoje šiek tiek čia. Tai didelis failas JavaScript, kad nagrinėdama visus web app sąveiką, ir taip mes ne rūpi labiausiai apie tai, bet mes rūpi kai jį. Pavyzdžiui, mes rūpinamės apie šį buildQuery funkcija, ir šios funkcijos idėja yra iš esmės dairausi puslapio, suprasti, ką vartotojas nori užklausą, kitaip tariant, patikrinti tuos langelius, kur jie įvesti savo paieškos terminus, patikrinti kitą Y ir X ašis vertybes, kad jie jau pasirinko ir visi, kad dalykas rūšiuoti, ir tai vyksta išspjauti Ši užklausa vertę, kurią galiu išsiųsti į API. Tai atrodo sudėtinga, ir ji yra gana sudėtinga bet ką aš ruošiuosi daryti iš tikrųjų, aš jau daro tai, kuris yra puikus tai, kad aš ruošiuosi gauti konsolės spausdinti tiksliai, kad užklausos vertę , kad jis siuntimas API. Kad iš tikrųjų čia. Atsiprašome, jis išveda daug dalykų. Tačiau tai, kas mums rūpi šis objektas čia. Tai yra užklausos objektas. Kitaip tariant, tai yra būtent tai žiniatinklio programa siunčia į API, ir tt Pažvelkime viduje šiek tiek, ir mes matome, mes turime keletą vertybes čia. Mes matome, kad mes turime, šis skaičius tipą, kuris yra įvykių milijonui žodžių, , kuri yra būtent tai, ko mes pasirinkome Y ašyje čia. Štai kur, kad ateina iš. Mes turime duomenų bazės vertę, o tai reiškia, kad yra tam tikrus duomenų bazė , kad šie duomenys yra gyvas, ir mes norime pasiekti, kad duomenys, konkrečiai , palyginti su kūdikių vardai duomenis, pavyzdžiui,. Tada mes turime šios grupės vertę, , kuri sako, kad mes norime ieškoti pagal metus, o ne bet kuriam kitam X ašis vertę. Tada mes turime metodą, kai kurios API bus padaryti keletą dalykų. Kitaip tariant, šis API gali taip pat grįžti kitų rūšių duomenų, bet šiuo atveju, mes norime, kad x ašis vertybių žemėlapių Y ašis vertės. Štai ką, kad sako ten daryti, ir mes turime šią paiešką ribos masyvas, kuriame yra 2 reikšmes. Pirmasis yra tai, ką mes matome čia, kuris yra visas reikšmes kad mažai langelyje esantis viršuje. Kitaip tariant, mes norime ieškoti žodžio mūšio, ir mes norite filtruoti anglų tekstų amerikiečių literatūroje. Mes turime šią šalį, kuri yra Jungtinės Amerikos Valstijos. Mes turime kalbą, ty anglų kalba, todėl mes turime visų šių skirtingų dalių , kurie visi pasakoja API būtent tai, ko mes norime. Mes nežinome, kokie duomenys, kuriuos mes gauname atgal dar, tačiau mes žinome, kad duomenys ketina imtis tam tikrą formą. Šis pavyzdys yra tarsi sudėtingos pusėje, ir jums bus ne būtinai naudojant API šį kompleksą, bet tai yra parodyti jums, diapazoną ir galią, ką API gali padaryti. Kitaip tariant, mes iš esmės turime gana paprastas užklausą sistemos įvesties langelį su keletu kitų selektoriai skirtingose ​​vietose. Leiskite man padidinti atgal čia. Turime įvedimo lauką su kelių skirtingų metaduomenų pasirinkimus, ir mes turime Y ašį ir X ašis pasirinkimus. Mes ne iš tikrųjų turėti, kad daugelyje sričių, ir mes galime pamatyti labai lengvai, mes galime vykdyti užklausą kažkokią API ir gauti duomenis atgal ir tada padėkite jį į šią diagramą, , kuris tada rodyti jį tam tinkamu būdu. Pažvelgti į kitą, pavyzdžiui, kad gali būti šiek tiek daugiau susipažinęs su jumis, vaikinai, mes ketiname kreiptis į "Facebook". "Facebook" API "Facebook" diagrama, ir iš esmės, ką tai reiškia, kad "Facebook" mato save kaip didžiuliu duomenų bazėje daug skirtingų dalių, kad visi turi tam tikrus santykius vienas su kitu. Kitaip tariant, aš "Facebook" vartotojas, kad aš turiu savo profilį, ir aš taip pat turi tam tikrų draugų, ir kiekviena iš jų turi savo profilį, ir kiekvienas iš mano draugų turi sienelę, turi skirtingą pastabas dėl ir kiekvienas iš šių pastabų mėgsta ir visus, kad dalykas rūšiuoti. Yra daug skirtingų dalių į Facebook. Tai nepaprastai sudėtinga API, ir ten tonų, kuriuos galite padaryti su juo, bet tai tikrai gana paprasta naudoti. Aš ruošiuosi pradėti ketina graph.facebook.com / billyjanitsch tai mano unikalus sąskaitos pavadinimas, ir jūsų sąskaitos pavadinimas arba kažkoks žodžio, jei jūs pasirinkote tai, ar tai gali būti tik skaičių eilutę. Ką mes grįžti yra gana Pagrindinė informacija. Mes matome, kad aš turiu vardą, kuris yra Billy, pavardė, kuris yra Janitsch. Yra unikalus "Facebook" ID, kurį aš. Jūs galite pamatyti, kad aš vyriškos ir, kad aš turiu savo kalbos nustatymus Britų anglų. Kitaip tariant, mes matome labai paprastas informacijos rasite čia. Tai nėra labai daug, tačiau ji suteikia mums idėją, kas ten. Mes galime padaryti tą patį David Malan, pvz. Manau, kad jo vardas yra dmalan. Mes matome, Davidas Malan turi unikalų ID. Jis yra vardas, pavardė, vardas, Antras vardas, pavardė. Mes taip pat matome, kad jis patinas ir turi savo kalbą rinkinį anglų kalba (JAV). Kitaip tariant, mes matome gana pagrindinę informaciją čia. Kas nutinka, jei mes stengiamės sužinoti ką nors kita? Tarkime, Man įdomu, ką Davidas Malan patiko "Facebook". Galiu padaryti / patinka. Dabar mes paleisti į problemą. Mes turime šiek tiek klaidų, rūšiuoti, kad sako prieigos raktą, privalėjo pateikti prašymą šiuos išteklius. Bet jei jūs manote apie tai, kad iš tikrųjų prasminga, nes tai būtų keista, jei galėtumėte naudotis "Facebook" duomenų bazėje kiekvieną dalį tiesiog kažkoks paprastą API, tiesa? Kitaip tariant, matyt, jūsų informacija negali būti atvertas visiems, kurie to nori. Ši klaida yra tiksliai, ką tai reiškia. Kai kurios API reikalauja, kad tam tikras teises tam, kad susipažinti su savo duomenimis. Ir net labiau pažengusios API, "Facebook" kaip vienas, bus reikalaujama, kad tam tikri leidimai, daryti tam tikrus dalykus. Aš galiu pamatyti šią pagrindinę informaciją apie David Malan. Matau, kad jis patinas ir, kad jis gyvena JAV, bet aš negaliu tikrai nieko matyti praeities, kad. Norėdami išspręsti šią problemą, dabar, "Facebook" šį patogų įrankį kuris yra grafikas API Explorer, kad idėja yra, galite rūšiuoti teises sau, remiantis savo sąskaitą ir tada peržiūrėti dalykų, kad būtent jūsų sąskaita gali peržiūrėti. Pavyzdžiui, jei aš graph.facebook.com/billyjanitsch/likes- oi, manau, turi iš naujo patvirtinti savo raktą čia. Gerai. Jei aš tai padaryti dar kartą, puikus, dabar aš matau, kad man šį objektą atgal , kurioje teigiama, kad man patinka baseinas makaronai, kurie iš kategorijos Žaidimai ir žaislai. Man patinka jūrų vėplius, kurie yra kategorijoje gyvūno. Tai yra mano tikrasis "Facebook" teig. Jie rūšies nepatogus. Tačiau matome, šie duomenys yra visi sugrįžo JSON. Tai gana įskaitomas. Kitaip tariant, mes turime tokius duomenis planavimo kažkoks masyvo, ir kiekvienas elementas šiame masyve HashMap, kuris žemėlapiai kaip pavadinimas ir kaip kategorija. Kiekvienas kaip turi unikalų ID. Yra įvairiausių duomenų, kad mes galime gauti įvairių dalykų, ir jei jus domina naudojant CS50 galutinę projekto "Facebook API ar ką nors panašaus, kad tai tikrai gana Vykdytinas. Iš esmės, kaip jums aplink atpažinimo dalykas yra "Facebook" naudoja sistemą, vadinamą "OAuth", arba atidaryti autentifikavimo, ir aš nenoriu gauti į jį dabar, nes "OAuth" arba skirtingo tipo autentiškumo linkęs keisti daug tarp skirtingų API, , kad galėčiau praleisti daug laiko vyksta per kiekvieną iš jų, bet jie iš tikrųjų gana savaime suprantama. Jei jūs "Google" "Facebook" API tai lengvai skaitoma. Yra visos spec. Pavyzdžiui, tai yra "Facebook API dokumentacija, ir jūs galite pamatyti, aš ant naudotojo puslapyje, kad galėčiau sužinoti viską apie įvairių rūšių dalykų , kurie yra prieinami gauti Kalbant apie duomenų ir taip pat skirtingas teises, kad man reikia, kad būtų pasiekti. Kaip matėme, mes nereikia prieigos teises, pavadinimą ar lyties, bet be to mums reikalinga leidimus daugelis dalykų. Šis puslapis arba, tiksliau, ši svetainė taip pat pasakys jums, kaip gauti simbolinis, kad būtų galima autentifikuoti save. Dauguma autentiškumo nustatymo sistemas naudoti tam tikras ženklas rūšiuoti kur jūs gaunate šią unikalią vertę, kuri yra tikrai ilgas ir atsitiktinių eilutė, ir tokiu būdu jie gali susieti prašymą, kad jūs darote su jumis. Kitaip tariant, jie žino, kad jūs nedarote nieko įtartino su savo turimais duomenimis. Jie žino, ką jūs gaunate. Jie taip pat žino, kad turite teisę, kad galėtumėte peržiūrėti šią informaciją. Jei atlikote "Facebook app ir jūsų app turi tam tikrų vartotojų, ir tie vartotojai, kad app pasiekti tam tikras savo profilį, tada kokia API raktas ar žetonas, kad app yra galės gauti duomenis Tokiems vartotojams. Tai gali skambėti sudėtinga, tačiau tai nėra labai blogai, ir, jei norite naudoti "Facebook" Aš labai rekomenduojame, kad jūs žaisti aplink su savo API. Tai labai kietas, ir daug įvairių dalykų, jūs galite padaryti su juo. Jei vartotojas suteikia jums šias teises jūs netgi galite grįžti į API ir sako, kad aš noriu, kad iš tikrųjų rašyti šio vartotojo sienos, ar aš noriu, kad jie būtų paskelbti nuotraukos, ir štai kodėl savo naujienų jums kartais gauti šių erzinančių dalykų posakis kažkoks keista vietoje, arba kažką panašaus, kad jūsų draugas stebėjo šį video. Tai yra todėl, kad app buvo suteiktas prieigą prie rašyti to asmens sienos. Bendra idėja, Facebook API yra gana sudėtinga, bet taip pat labai naudinga. Tikrai verta patikrinti, jei jūs vis dar ieško galutinio projekto. Kitas API komplektą, kad aš ruošiuosi eiti per CS50 API. Leiskite man padidinti čia. CS50 sudėti visą eilę API , kad galite naudoti, kad galutinė projekto arba tiesiog nieko, kad jūs darote. Ir jie daugiausia Harvardo susiję, ir jie skiriasi nuo Huds meniu, pavyzdžiui, šios Harvardo Renginiai API, kuri leis jums pasiekti sąrašą įvairių renginių, kurie vyksta Harvardo ir kad dalykas rūšiuoti. Ir todėl mes galime spustelėkite bet kurioje iš šių ir gauti už jį spec, kurį bus galima rasti kokį nors API, ir idėja yra leidžia jums žinoti, ką konkrečiai reikalauti iš API ir kaip jos prašyti. Kitaip tariant, jei norite, kad visi įvykiai, kurie vyksta rytoj tada aš turiu akivaizdžiai suteikti jai tą datą, kad aš noriu, tam tikru formatu, ir B, jis bus pasakyti man, ką ji ketina duoti atgal į mane. Jis sako: aš ruošiuosi grįžti jums šį JSON objektą, arba, kaip jūs galite pamatyti, yra skirtingi formatai. Taip pat galite grąžinti duomenis į CSV, pvz. Bet jūs tiksliai žinoti, kaip ketina ieškoti, kai jūs gaunate jį atgal, kad duomenys todėl galite tikėtis su juo daryti tam tikrus dalykus. Mes galime slinkite žemyn ir pamatyti, pavyzdžiui, jei norime užklausą API gauti kalendorių, tada mes galime naudoti šį konkretų URL ir suteikti jai tam tikrus parametrus, kuriuos ketinate būti duomenys, kad mes norime tiksliai. Ir taip pat, jei mes norime, kad atgal į tam tikrą formatą duomenų, tada mes galime paprašyti jį išvesti duomenis iš CSV, ir tai tik dar vienas parametras, kad mes pereiti į API. Daug įdomių dalykų ten daryti. Aš tikrai rekomenduojame patikrinti CS50 API. Aš ruošiuosi visų pirma šiek tiek pažvelgti į šio Harvardo Maisto API. Vienas dalykas, aš iš tikrųjų sukurta tai Harvardo Noms svetainėje, , kuri naudoja CS50 maisto API gauti Huds meniu dieną. Ir pratęsimo mokyklos žmonių, Hudson yra valgomasis svetainė Harvarde. Ką jūs gaunate tai puslapis, kuriame yra visi tą dieną valgio, todėl matome pietūs. Turime keletą skirtingų kategorijų. Mes turime pupelių ir nesmulkintų grūdų stotis. Mes turime rudieji ryžiai stotį. Galime išvysti priešpiečiai, mes turime šiuos kelis maisto produktus. Jei mes spustelėkite ant jų, tada mes gauname informacijos apie maistingumą. Jūs matote, tai yra informacija apie maistingumą greipfrutų, tuo atveju, jei buvo įdomu. Ir tokiu būdu vėlgi, mes ketiname žvilgsnis į nugaros pabaigoje čia šiek tiek ir pamatyti, kas tiksliai tai daryti, kad gauti šiuos duomenis. Ir paaiškėja, kad iš tiesų nėra labai sudėtingos. Šis failas atrodo šiek tiek nepatogus, bet reikia nepamiršti, kad tai tvarkyti visą svetainę, ir jei aš slinkti žemyn matome, šis pokytis duomenų funkciją. Dabar, tiesiog turi būti aišku, tai yra parašyta CoffeeScript kuris yra kalba, kad jūs tikriausiai dar nematėte anksčiau. Bet tai gana įskaitomas, todėl aš vaikščioti per ją, tarsi tai būtų Pseudocode. Keisti datą yra funkcija, kuri ketina imtis per šį laikotarpį vertės, ir ji taip pat ketina imtis pirmasis, kurį mes nerūpi kiek. Bet svarbiausia yra tai, kad šią datą, ir ši data yra ta diena, kad mes norime paprašyti visų maisto elementų. Ir tada pamatysite mes turime šiek tiek sintaksė, , kuri iš esmės yra apdorojant minėtą datą į suprantamu formatu. Kitaip tariant, API reikalauja tam tikru formatu datą. Jūs galite ne tik pasakyti Lap 16, 2012 AD. Tai bus ne žinoti, ką daryti su tuo. Ji nori tikro formato datą. Viskas, ką mes darome čia suteikia būtent tai formatas, kuris yra metų vertę ir tada brūkšnelis, mėnesio vertė, dar vienas brūkšnelis ir datą, vertė. Ir mes taip pat sako, kad mes norime, kad duomenys būtų produkcija JSON. Dabar mes šį AJAX prašymą, ir, kaip jau minėjau anksčiau, JQuery yra tai super naudingo AJAX funkciją, viskas, ką jums reikia padaryti, yra nurodyti keli parametrai žemai čia, ir jis duos jums būtent tai, ko norite. Mes sakau tai, kad mes norime eiti į URL, tai CS50 Maisto API , kurią mes gavome iš spec. Mes sakome, kad mes norime, kad duomenis JSON ir kad mes ketiname suteikti jam šiuos duomenis, mes sukūrėme taisykles čia. Tai diena, mes norime, kad maisto produktų. Ir tada visi mes turime padaryti, tai nustatyti kažkokią sėkmės funkcija, , kuris iš esmės yra kas atsitinka, kai API grąžina, kad duomenys. Kitaip tariant, mes supakuoti visų parametrų, kad mes norime, , kuris šiuo atveju yra diena, kad mes norime, ir tai, kad mes norime jį JSON, ir mes pasiuntė jį išjungti API, todėl dabar API sako, gerai, čia yra jūsų duomenys, aš turiu jį atgal už jus. Mes turime sėkmės funkciją, o tai reiškia tikrą, kad API sėkmingai grąžina tam tikrus duomenis, ką daryti su juo? Ir paaiškėja, kad visi mes darome, yra tai vadiname atnaujinimas meniu funkcija su kokia API grįžo, todėl mes galime ieškoti ir pamatysite, kad viskas, ką mes darome, yra naudojant naujos sintaksės krūva čia atnaujinti HTML kodą ir įdėkite Šie nauji duomenys. Kas tai leidžia, mes turime šiuos abiejų pusių rodykles, ir mes galime paspausti, ir dabar mes ieškome ne kitą dieną duomenimis ir vėl kitą dieną, ir kiekvieną kartą ji atnaujinti tos dienos vertę ir API užklausoms, gauti tam tikrus duomenis ir išleisti jį į svetainę. Vėlgi, jūs galite pamatyti, super, super naudinga. Ši programa paėmė mane kelias valandas nulaužti kartu, ir aš turiu šiek tiek daugiau patirties, žinoma, bet savo galutinį projektą CS50 gali atrodyti labai panašus į šį. API yra super galingas suma pastangų, kad jos galėtų imtis. Paskutinis dalykas, aš ruošiuosi eiti per keli API plačiai. Aš ne gauti kiek į juos, kiek tai, ką jie daro konkrečiai, bet aš duosiu jums idėją, kas ten. 2 tikrai naudinga, jei jus domina duomenų analizei ar vizualizacija ar ko nors panašaus, Freebase ir Vikipedijos. Wikipedia-matyt, jūs visi žinote, yra nemokama interneto enciklopedija, ir ji iš tikrųjų turi API, todėl, jei norite, pavyzdžiui, gauti visus tekstus ir aštuonkojo straipsniai jūs galite labai lengvai tai padaryti. Tiesiog pasakyti hey Mokėjimo API, aš norėčiau pateiktais duomenimis, nes tai, ir aš norėčiau šiuo formatu, ir straipsnis Norėčiau aštuonkojai, ir labai greitai ji bus duoti jums atgal, kad informacija. Kad gali būti tikrai naudinga, jei norite, kad kažkoks sklypo tai geriau Wikipedia arba kažką panašaus, kad žiūrovas. Freebase tarsi panašus, nors tai šiek tiek sunkiau, kiek API. Freebase yra kaip, kad tai internetinė enciklopedija Wikipedia kurio sudėtyje yra daug ir daug įvairių duomenų apie įvairių įvairiausiomis temomis, bet tai saugomi reliacinės duomenų bazės, kuri yra šiek tiek skiriasi nuo "Wikipedia". Vikipedija turi savo straipsnius ir straipsnius, susijusius su kitų straipsnių, bet didžiąja dalimi, jei norite duomenis aštuonkojo jūs einate prie aštuonkojų straipsnyje, gauti, kad duomenis, ir jūs turite teksto krūva apie aštuonkojai, kad tai puiku. Freebase dirba šiek tiek daugiau sudėtinga būdu, kad viskas yra susiję vienas su kitu. Kitaip tariant, jei mes ieškome aštuonkojo tada ji turi su juo susijusių kategorijų krūva. Pavyzdžiui, gyvūnų, ji gyvena po vandeniu, jis turi tam tikrą kūno temperatūrą. Nežinau. Ir visi iš šių kategorijų yra nuorodos į kitų vietų, kur galite eiti pamatyti dalykus su tos pačios kategorijos. Kitaip tariant, aštuonkojai duomenų rinkinys yra nuoroda į visų gyvūnų duomenų rinkinio, ir kad būtų leiskite judėti duomenų bazėje tikrai greitai. Tai gali būti labai naudinga, jei jūs darote kažką panašaus į palyginimų. Kitaip tariant, atsižvelgiant į tam tikras dalykas, jūs norite pamatyti , ką dar ji susiję ir pamatyti, ką dar ji nėra susijusi su. Kad dalykas rūšiuoti. Tai gali būti naudinga įvairiais būdais. Jei jūs ieškote daugiau iššūkis ir, kad būtų galima padaryti kai kuriuos sudėtingesnius dalykus Manyčiau atsižvelgiant tuo Freebase API išvaizdą. Bet iš esmės, Vikipedija yra labai paprasta vieta eiti kiek gauti informaciją. Kita vieta, kad aš pažvelgti į Last.fm, ir aš iš tikrųjų ketiname eiti į svetainę jei kai kurie žmonės nėra susipažinę, bet Last.fm yra iš esmės muzika skonis ir rekomendacijos svetainės. Jūs galite padaryti savo sąskaitą. Galite pradėti įkelti muziką iš savo muzikos grotuvo į svetainę, ir iš esmės ji bus pradėti duoti jums muzikos rekomendacijas nuo to, ką klausytis. Pavyzdžiui, jei jūs einate į savo profilio puslapį-tai mano matote, neseniai klausėsi dainos sąrašą. Jūs galite pamatyti bendrą mėgstamų menininkų, visi, kad dalykas rūšiuoti, ir vėl, yra didelis API už Last.fm  ir jūs galite naudoti ją padaryti daug ir daug tikrai įdomių dalykų. Pavyzdžiui, aš eisiu į draugo puslapį, kuris turi šį Last.fm Įrankiai svetainę. Iš tikrųjų tai yra kita platforma, kuri yra pastatyta ant Last.fm API, ir ji gana įdomių dalykų. Jei aš prisijungti su savo vartotojo vardą, pavyzdžiui, Galiu paprašyti jį sukurti Tag Cloud, pavyzdžiui, ir tai, ką ketina daryti, duok man atgal įvaizdį visi skirtingi žanrai ir kad dalykas rūšiuoti, kad man patinka klausytis. Kaip jis tai daro? Labai iš esmės tai sako Last.fm API čia šį klientą. Norėčiau sužinoti kiekvienoje dainoje žanrą, kad jie kada nors klausėsi, ir jūs galite tai padaryti gana paprasta AJAX skambutį į Last.fm API. Gausite didelį sąrašą, ir tada, žinoma, kai kurių kitų dalykų daroma paversti jį Žodžių debesis, bet jūs galite pamatyti bendras tai labai lengva pasiekti ir labai paprasta naudoti. Tikrai malonu daug dalykų. Manau, kad apie viską, ką pasakys, bendras. Ir paskutinis dalykas, aš paminėti apie API apskritai yra tai, kad jums kartais paleisti į vadinamąjį norma apriboti, ir idėja yra greitį ribojantis nenorite piktnaudžiauti API. Kitaip tariant, tai tikrai malonu, kad iš šių svetainių turi daug API , kad galite eiti ir naudotis nemokamai. Tačiau, jei jūs darote milijonus ar milijardus užklausų per dieną, Pavyzdžiui, jei esate įstrigo begalinis ciklas, kad manimi galo užklausų kai API rūšiuoti ir gauti milžinišką kiekį duomenų, Akivaizdu, kad tai nėra gerai, tai kas API daug padaryti, kad šis rodiklis būtų apriboti funkcija , kad sako, kad galite padaryti tik 1000 užklausų per dieną IP adresą arba kažką panašaus, kad. Ir jei jūs darote daug bandymų ir kad dalykas rūšiuoti, jums kartais paleisti į tą, ir staiga ji bus uždaryta jums ne ir pasakyti "ne, aš ne duoti jums daugiau duomenų. Ką jūs norite daryti yra žaisti pagal taisykles. Jūs norite įsitikinkite, kad jums skaityti API Spec atidžiai. Jei ji turi tam tikras taisykles, prie jos, kaip jūs galite padaryti tik X užklausų per dieną ar jums gali prieiti tik prie duomenų bazės dalį tam tikrą skaičių kartų arba kažką panašaus, kad norite įsitikinkite, kad jums laikytis, kad. Tol, kol, kaip tu žaidi per šių taisyklių, jums tikriausiai tikrai gerai praleisti laiką, naudojant API. Jūsų bendrą išsinešimui API tikrai, tikrai naudinga. API beveik bet kokio didelio interneto paslaugų ten. Gana daug, bet "Google" įrankių rinkinį, "Google Maps", "Google Earth" dalis, "Gmail", "Google Calendar", visus tuos dalykus API. Jūs galite naudoti juos ir gauti duomenis iš serverio ir siųsti duomenis į serverį. Kitaip tariant, jei norite, kad kalendoriaus app kad galite atnaujinti kieno nors "Google" kalendoriaus, yra API, kad. Jei norite padaryti kažką, kad pasakyti, kur vieta yra tam tikro adreso, galite naudoti "Google Maps API, kad. API fantastiškai naudinga, ir jie visur. Jei jus domina kažkoks idėjos, ten tikriausiai susiję API, kad galite naudoti, norėdami gauti daug duomenų labai greitai ir labai paprastai. Jei Jūs vis dar ieškote už projektą, arba jei jūs tiesiog norite pažaisti apskritai su kažkuo, API yra tikrai verta daryti. Ačiū, ir aš mielai atsakysime į visus klausimus, kurie jus vaikinai gali turėti. Gerai, ačiū. [CS50.TV]