[Powered by Google Translate] [Seminar] [eines Programmierers Einführung APIs] [Billy Janitsch] [Harvard University] [Tommy MacWilliam] [Dies ist CS50.] [CS50.TV] Hallo, alle, ich bin Billy, und heute werde ich über APIs zu sprechen, oder Anwendungsprogrammierschnittstellen, speziell im Zusammenhang mit der CS50 endgültigen Projekte und solche Dinge. In der Regel, was ist ein API? Ganz allgemein ist es eine Art mittleren Mann, 2 Stück ermöglicht von Software, um miteinander zu kommunizieren. Das ist eine Art von sehr weit gefasste Definition und ist nicht so relevant für das, was wir gerade sehen. Was wir wirklich wollen, ist eine Art von nützlichen Mittelweg mit irgendeiner Art von Datenbank irgendwo kommunizieren. Hier ist ein Diagramm, und im Grunde die Idee ist, dass wir sind eine Anwendung, und wir wollen, um Daten aus einer Datenbank zu erhalten, aber wir wollen nicht direkt auf die Datenbank abzufragen. Stattdessen wollen wir durch diese Art Mittelweg Mann, der API gehen. Die Idee hinter daß für Zahlen 2 und 3 auf dem Diagramm sind beide gehen sehr kompliziert und chaotisch. Mit anderen Worten, wenn die API wird das Abfragen der Datenbank, es ist wahrscheinlich zu sein mit SQL-Tabellen und all das Zeug, und wir haben ein bisschen darüber in CS50 gelernt, aber insgesamt haben Sie bemerkt, dass es ein bisschen wie ein Schmerz ist. Es wird sehr, sehr kompliziert und chaotisch, vor allem wenn man machst komplexe Abfragen und diese Art von Dingen. Was wir wirklich wollen, ist eine Art von nützlichen und einfach , dass die Daten zu bekommen, und das ist die Idee hinter Nummern 1 und 4 auf der Karte. In anderen Worten, wir wollen eine wirklich einfache Möglichkeit, die API zu sagen, was für uns zu bekommen und eine wirklich einfache Möglichkeit, diese Daten wieder zu bekommen. Es gibt ein Hauptrestaurant, dass die Daten in der Regel gesendet und empfangen werden, das ist JSON oder JavaScript Object Notation. Das kann ein wenig soweit wie dem Senden der Anfrage an die API variieren. In anderen Worten, wenn Sie einige bestimmte Menge an Daten, wie Sie sagen, die API zu bekommen, dass Daten können ein wenig variieren. Normalerweise ist es beinhaltet die Vornahme von irgendeine Art von Netzwerk-Anfrage. In anderen Worten, den Zugriff auf irgendeine Art von URL, geht die API zu sagen genau das, was Sie wollen, aber die Daten fast immer zurückgeschickt, mit anderen Worten, Nummer 4 in JSON. Was ist JSON genau? Wie ich schon sagte, JavaScript Object Notation. Es ist im Grunde die universellen Standard für die Übertragung und den Empfang von Daten. Die Idee ist, dass Sie diese 3 Kategorien von Dingen zu haben. Sie haben Arrays, HashMaps und Primitiven. Arrays und HashMaps man sich ein wenig in CS50 angeschaut habe, aber du hast Art einen sehr strengen Sinn, was sie sind gekommen. In anderen Worten, mit Arrays, die Sie wissen, dass sie Typ gebunden, so müssen Sie nur eine Art von Typ, der in der gesamten Array geht. JSON ist viel mehr Nachsicht mit dieser Art der Sache. Grundsätzlich ist die Idee konstruieren Sie dieses Objekt, Welche kann jeder dieser 3 Dinge zusammen und kann aus mehreren einzelnen von ihnen zusammengesetzt werden, und sie können verschachtelt werden. Hier ist eine Art Beispiel für JSON, was diese geschweiften Klammern hier vertreten Ihre hashmap, und ein hashmap ist im Grunde ein Mapping von einer Art Schlüssel irgendeine Art von Wert. Du wirst sehen, dass wir die Eigenschaften Schlüssel haben, und das ist auf ein Array Mapping, ist die ganze Sache. Wir sehen ein weiteres Element der hashmap, die diese Taste isAwesome ist, Welche Karten zu einem primitiven Wert true, in anderen Worten, ein boolean. Primitives kann Strings sein. Sie können ganze Zahlen sein. Sie können bools sein, so etwas. Und sehen Sie den Inhalt dieses Arrays, dass die Eigenschaften Punkte hat 2 Saiten in ihm, selbst ähnlich und wunderbar. Das sind 2 Eigenschaften von JSON, und wir sehen, dass JSON ist genial. An, dass sich ein wenig näher Ich werde zu konstruieren ein komplexeres Beispiel für JSON hier. Lassen Sie uns mit einer Reihe starten, zum Beispiel, nur ein leeres Array. Aber diese Art von langweilig ist, so werden wir es füllen sich ein wenig, und wie ich schon sagte, sind Arrays in JSON-Typ gebunden, so konnten wir auch einen String hier, was ist hallo, und das ist ein weiteres Element des Arrays. Und ebenso können wir eine hashmapping hier hinzufügen, was geht, um ein paar Mappings haben. Es wird eine Zuordnung von Namen auf den String Billy haben. Wir haben eine Zuordnung von Namen zu Billy, und wir haben eine Zuordnung von Lieblingsfarbe blau. Das ist im Grunde ein gutes Beispiel für JSON. Es Art von gets into-hoppla, muss ein Komma gibt-all der verschiedenen Teile davon. Auch ist es nicht geben gebunden überhaupt, so können Sie jede Art von Typen im Inneren, was Sie wollen, und die Idee ist, dass es sich selbst ähnlich. In anderen Worten, dies ist hier ein JSON-Objekt, wie diese ganze Sache, wie eben diese, so können Sie sich eine primitive ein Objekt sein, ein Array ein Objekt sein oder ein hashmap ein Objekt sein. Wie kann man irgendwie sehen, ist JSON wirklich, wirklich nützlich, da es so vielseitig ist. Sie können alle möglichen Daten, die Sie in JSON gespeichert vorstellen kann. Das macht es ein wirklich schöner Sprache mit APIs verwenden weil es ziemlich viel bedeutet, dass, egal welche Daten, die Sie es geht um einen Weg, um es wieder in JSON sein. Ein paar Eigenschaften, die JSON besonders gut für diese Art der Sache zu machen. Wie Sie sehen können, auf eine Menge von Dingen gegenüber, dass Sie mit gearbeitet in CS50 es ist vergleichsweise sehr leicht zu lesen und auch sehr einfach zu schreiben. Sie können Gedankenstrich es aus, wenn Sie wollen, wie ich in diesem Beispiel tat, das gibt Ihnen eine schöne, hübsche Version, dass man wirklich gut zu sehen. Aber darüber hinaus ist es auch leicht zu lesen und für einen Computer zu schreiben. In anderen Worten, es ist einfach zu analysieren und einfach zu codieren, was bedeutet, dass es ziemlich schnell ist so weit wie das Lesen der Daten betroffen ist, und JSON kann sehr schnell erzeugt werden. Es ist auch sehr leicht zu verschiedenen Teilen des JSON und diese Art der Sache zugreifen. Das ist schön, und außerdem die Tatsache, dass es sich von selbst ähnliche ist, in anderen Worten, die Tatsache, dass man JSON in JSON in JSON haben ist wirklich nett zum Speichern von Daten. Ein weiterer Teil, die im Allgemeinen ist sehr nützlich bei der Arbeit mit APIs ist jQuery. Sie haben ein wenig JavaScript gelernt haben, ist das eine nette Art und Weise HTML und CSS innerhalb einer Website zu manipulieren. Aber es kann Art sein, ein Schmerz, um Code in plain JavaScript, vor allem, weil JavaScript ist ein wirklich verbose Sprache. Sie haben eine Menge von Syntax zu lernen, und nur um ganz einfache Dinge zu tun dauert es eine Menge Code, so jQuery ist eine Bibliothek für JavaScript. In anderen Worten, es ist eine JavaScript-Datei, die Sie laden können und verwenden Sie dann jQuery-Funktionen, um bestimmte Dinge zu tun. Und jQuery Grunde macht Ihnen das Leben ein ganzes Stück einfacher. Es vereinfacht, was Hunderte von Zeilen in JavaScript take down auf ein paar Zeilen in jQuery. Es ist besonders nützlich, wenn Sie APIs sind da in der Regel Wie werden Sie Zugriff auf APIs ist, indem AJAX-Anfragen, und ich glaube, David hat in der Vorlesung erwähnt, dass AJAX-Anfragen sind in der Regel, wenn du machst ein Netzwerk Anfrage zu einer Art von Server- und immer wieder eine Art von Daten und Aktualisierung einer Seite sofort. Während in plain JavaScript, das würde verrückt Anzahl der Zeilen um alle Header validieren und alles tun, dieser Art von Sachen, jQuery hat eine wirklich einfache Funktion namens AJAX, und alles, was Sie in AJAX tun ist, geben die Parameter, die Sie wollen, um die API geben, die Lage des API und jede zusätzliche Art von Optionen, die Sie konfigurieren möchten. Es ist wirklich, wirklich nett und sehr nützlich für diese Art der Sache. Das ist alles, was wir brauchen, um immer die Hände schmutzig in APIs. Ich werde, um ein paar Beispiele und erkunden ihre unterschiedlichen Eigenschaften und warum sie für verschiedene Arten von Dingen nützlich. Das erste, was ich eigentlich zeigen, werden Sie ist etwas, das ich arbeite an meinem Forschungslabor ist das ein Ngram Viewer, und im Grunde die Idee eines Ngram Viewer ist man für irgendeine Art von Wort suchen oder eine Phrase und sehen, wie oft es in einem bestimmten Satz von Text im Laufe der Zeit ist erschienen. Dieses Beispiel hier ist dieser Datensatz von Babys Das waren in New York zwischen 1920 und 2000 geboren. Wir suchen können, zum Beispiel für den Namen Jennifer, und wir sehen, dass vor 1960 war es wirklich nicht allzu viel verwendet, und dann als wir in späteren Jahren immer ist mehr und mehr verwendet. Wir können auch Vergleiche, so dass, wenn wir Jennifer vergleichen, um beispielsweise Thomas, können wir sehen, Thomas war ziemlich verbreitet im Laufe der Geschichte, während Jennifer ist eine neuere Namen. Wir können diese Art der Sache. Wie funktioniert diese Anwendung arbeiten? Grundsätzlich funktioniert das über eine API. In anderen Worten, wir haben bestimmte Parameter hier. Wir haben die Parameter dessen, was wir eigentlich suchen, was sind diese Namen, und dann haben wir noch ein paar andere Eigenschaften, wie die Y-Achse und der X-Achse. Sie können sehen, wir haben ein paar verschiedene Möglichkeiten, so weit das Zeitauflösung zu verwenden und diese Art von Dingen. Wir haben diese Möglichkeiten so weit wie, welche Daten wir eigentlich wollen aus der Datenbank, und wir wollen, dass die Daten wieder in einigen nützlichen Weg. Normalerweise, wenn wir Abfragen wurden direkt auf die Datenbank wäre es eine Art von Schmerzen zu tun weil vermutlich diese Daten über Babynamen lebt in irgendeiner Datenbank irgendwo, und es wäre wirklich kompliziert sein, muss es manuell abzufragen und genau entscheiden, welche Daten, um zurückzukehren. In anderen Worten, wir nur über Jennifer und Thomas kümmern in diesem Fall und wir nur auf eine bestimmte Achse und all das Zeug kümmern. Wie können wir dies zu umgehen? Um in diesen API ein wenig mehr grabe ich werde Ihnen zeigen, ein weiteres Beispiel für diese Plattform die verwendet eine etwas andere Datensatz. Dieser Datensatz, anstatt Babynamen, ist eigentlich nur das gesamte Drucken Publikationsdatenbank Open Library, das ist eine riesige Quelle für Texte im Laufe der letzten 100 Jahre oder so veröffentlicht. Die Idee ist, haben wir diesen kompositorischen von Millionen und Abermillionen von Text, was können wir nun für unterschiedliche Wörter und Phrasen in. suchen Hier ist ein Beispiel, das ein wenig anders aus dem vorherigen Beispiel variiert Ich habe Ihnen gezeigt, was wir haben diese 3 Suchanfragen, Krieg, Krieg, und die Französisch Wort für Krieg, der guerre ist. Und wir innerhalb von 3 verschiedenen Abschnitten der gesamten Datenbank suchen. Mit anderen Worten, in dieser ersten Abfrage wir nur die Suche in den USA, in der zweiten nur in Großbritannien, und der dritte nur aus den Werken in Frankreich veröffentlicht. Wir sehen einige interessante Muster entstehen. Zum Beispiel, sehen wir gleich um hier was- oops, durcheinander ich die Achse ein wenig, aber Sie können in diesem Bereich finden Sie hier um den Bürgerkrieg gibt es eine große Spitze in der amerikanischen Ausgabe aber nicht so eine große Spitze in den beiden anderen, und das ist natürlich, weil der amerikanische Bürgerkrieg war an diesem Punkt passiert. Wir können sehen, ein paar coole Sachen gibt, aber was uns wirklich wichtig ist, wie wir diese Daten einsehen. Ich werde Sie hinter die Kulissen in diesem app in ein wenig zu nehmen. Ein netter Trick ist, wenn man mit dem Ort und Art arbeiten wollen wissen, was passiert hinter den Kulissen, können Sie eröffnen die Entwickler-Tools. Ich werde zu sein mit Chrome Developer Tools, und zu denen sich Sie tun können, Steuerung, Verschiebung, J, und das bringt Sie die JavaScript-Konsole. Es gibt ein paar Lappen hier. Sie können alle ziemlich nützlich sein unter verschiedenen Umständen, aber ich sorge über das Netzwerk Registerkarte gerade jetzt, und ich habe eigentlich zu aktualisieren, dass Laufen zu bringen. Oh, sorry. Es mag eine zufällige Beispiel zu geben. Okay, wir dieses Beispiel anstatt dann verwenden. Die Idee ist, gibt es diese API hier und Sie können genau sehen, was die API zurück. Dies ist, was die Anwendung immer wieder aus dem API mit geschickt diesen Antrag ab. Lassen Sie mich in ein wenig zu vergrößern, und wir können im Grunde sehen, es ist nur eine Reihe von Schlüssel-Wert-Paare in JSON. In anderen Worten, wir haben dieses hashmap hier die Zuordnung von Werten ist. Mit anderen Worten, es ist Abbilden Jahren Werte. Im Jahre 1765, was Wort, das wir ursprünglich gesucht wird 90 mal verwendet von 1 Million, so bekommen wir wieder dieses Ergebnis. Es ist nicht genau JSON da wir dieses kleine Ergebnis header hier zu haben, Beachten Sie aber, dass diese ganze Objekt hier nur eine große große JSON Blob. Wir haben eine Reihe hier, die dieses ganze Element enthält, und Sie können sehen, dass ganze Element dort endet, und dann haben wir einen weiteren großen Element das geht den ganzen Weg bis zum Ende, und das endet hier. Wir haben einen wirklich großen Array mit 2 Objekte in ihm, und jedes dieser Objekte eine hashmap. Sie können in jedem dieser HashMaps sehen, wir haben eine Zuordnung dieses Index-Wert auf 0, und dieser Wert den Wert zu einem anderen hashmap, die wiederum ist die Abbildung X-Achse Werte Y-Achse Werte. Sie können sehen, JSON bekommt ein wenig kompliziert, aber insgesamt es ist eigentlich sehr nützlich, und es ist sehr einfach im Vergleich zu den Zugriff auf verschiedene andere Formen der Notation. Soweit, was wir tatsächlich das Senden von Daten an die API zu bekommen, Ich werde in das hintere Ende ein bisschen hier. Das ist die große JavaScript-Datei, die der Behandlung der Wechselwirkungen der Web-App ist, und so haben wir nicht über die meisten dafür interessieren, aber wir kümmern uns um etwas von ihm. Zum Beispiel kümmern wir uns um dieses BuildQuery Funktion und die Idee dieser Funktion ist im Grunde ist es auf der Seite suchen, herauszufinden, was der Benutzer abzufragen, mit anderen Worten will, Prüfung solcher Boxen, wo sie haben Eingabe ihrer Suchbegriffe, Prüfung der verschiedenen Y-und X-Achse Werte, die sie gewählt haben und alle diese Art von Dingen, und es wird zu spucken diese Abfrage Wert, die ich dann senden kann off der API. Das sieht kompliziert, und es ist ziemlich kompliziert aber was ich jetzt tun-in der Tat, ich bin schon dies zu tun, ist die Ur- ist, dass ich gehe, um die Konsole zu bekommen ausdrucken genau das Abfragewert dass es Platzverweise der API. Das ist eigentlich genau hier. Leider gibt es eine Menge Dinge. Aber das ist, was wir kümmern wird diese Aufgabe hier. Dies ist das Query-Objekt. In anderen Worten, dies ist genau das, was die Web-Anwendung ist mit dem API Senden und so wollen wir in einem etwas zu sehen, und wir sehen, wir haben ein paar Werte hier. Wir sehen, wir haben dieses Zähltyp, was Ereignisse pro Million Wörter, das ist genau das, was wir in der Y-Achse hier gewählt. Das ist, wo das herkommt ist. Wir haben eine Datenbank-Wert, was bedeutet, dass es gibt einige bestimmte Datenbank bedeutet, dass diese Daten in lebenden, und wir wollen, dass die Daten gezielt auf zu den Babynamen Daten, zum Beispiel gegenüber. Dann haben wir diese Gruppen Wert, die sagt, dass wir von Jahr zu suchen, im Gegensatz zu wollen andere X-Achse Wert. Dann haben wir eine Methode, die einige APIs werden mehrere Freizeitangeboten. Mit anderen Worten kann diese API auch wieder andere Arten von Daten, aber in diesem Fall soll diese Zuordnung der X-Achse die Y-Achse-Werte Werte. Das ist, was das sagt es zu tun gibt, und wir haben diese Suche Grenzen Array, das 2-Werte enthält. Die erste ist, was wir hier sehen, ist das alle Werte enthalten in diesem ersten kleinen Kasten an der Spitze. In anderen Worten, wir wollen nach dem Wort Kampf zu sehen, und wir wollen zu filtern von englischen Texten in der amerikanischen Literatur. Wir haben dieses Land, das den USA ist. Wir haben eine Sprache, die Englisch ist, so haben wir alle diese verschiedenen Teilen das sind alle erzählen die API genau das, was wir wollen. Wir wissen nicht, was die Daten, die wir bekommen noch zurück ist, aber wir wissen, dass die Daten wird eine bestimmte Form annehmen. Dieses Beispiel ist eine Art auf die komplizierte Seite und Sie würden nicht unbedingt werden über eine API diese komplexe, aber das ist Ihnen zu zeigen, die Reichweite und Kraft dessen, was APIs tun können. Mit anderen Worten, unter Verwendung einer relativ einfachen Abfragesystem wir haben grundsätzlich ein Eingabefeld mit ein paar anderen Selektoren an verschiedenen Orten. Lassen Sie mich wieder zu verkleinern hier. Wir haben ein Eingabefeld mit ein paar verschiedene Metadaten Selektionen, und wir haben Y-Achse und X-Achse Auswahl. Wir wissen nicht wirklich, dass viele Felder, und wir können sehr leicht erkennen, dass wir in der Lage, irgendeine Art von API abfragen und erhalten Daten zurück und steckte sie dann in diesem Diagramm welches dann dabei, es in einer sinnvollen Weise anzuzeigen. Um ein anderes Beispiel, das vielleicht ein bisschen besser kennen zu euch wir gehen auf Facebook drehen. Facebook-API wird als Facebook Graph, und im Grunde, was das bedeutet, ist Facebook versteht sich als dieser riesigen Datenbank aus vielen verschiedenen Teilen daß alle bestimmten Beziehungen zueinander haben. In anderen Worten, ich bin ein Benutzer auf Facebook, so habe ich ein Profil, und I auch bestimmte Freunde, und jeder von ihnen ein Profil hat, und jeder meiner Freunde hat eine Wand, die verschiedene Kommentare drauf hat, und jeder dieser Stellungnahmen hat Vorlieben und alle diese Art von Dingen. Es gibt viele verschiedene Teile zu Facebook. Es ist eine äusserst komplexe API, und es gibt Tonnen man damit machen kann, aber es ist eigentlich recht einfach zu bedienen. Ich werde beginnen, indem Sie auf graph.facebook.com / billyjanitsch, das ist meine einzigartige Account-Namen und Ihr Account-Name wird entweder irgendeine Art von Wort, wenn Sie haben es gewählt, oder es könnte nur eine Reihe von Zahlen. Was wir wieder ziemlich grundlegende Informationen. Wir sehen, dass ich einen Vornamen, der Billy, einen Nachnamen, die Janitsch ist zu haben. Es ist ein einzigartiges Facebook-ID, die ich habe. Sie können sehen, dass ich männlich bin und dass ich meine Sprache Einstellung British English. In anderen Worten, wir sehen sehr grundlegende Informationen hier. Es ist nicht zu viel, aber es gibt uns eine Vorstellung von dem, was da ist. Wir können die gleiche Sache zu David Malan tun, zum Beispiel. Ich glaube, sein Name ist dmalan. Wir sehen David Malan hat eine eindeutige ID. Er hat einen Namen, Vorname, zweiter Vorname, Nachname. Wir sehen auch, dass er männlich ist und hat seine Sprache auf US-Englisch. In anderen Worten, wir sehen ziemlich grundlegende Informationen hier. Nun, was passiert, wenn wir zum Auschecken etwas anderes versuchen? Sagen wir, ich bin interessiert, was David Malan hat auf Facebook beliebt. Was ich tun kann / mag. Jetzt haben wir ein Problem stoßen. Wir haben eine Art von Fehler, die ein Zugriffstoken, sagt ist erforderlich, um diese Ressource zu beantragen. Aber wenn man darüber nachdenkt, das tatsächlich Sinn macht, denn es wäre komisch wäre, wenn Sie auf jedes einzelne Teil des Facebook-Datenbank nur aus einer Art von einfachen API, nicht wahr? In anderen Worten, vermutlich Ihre Informationen können nicht von jedem, der es will zugegriffen werden. Dieser Fehler ist genau das, was das bedeutet. Einige APIs erfordern bestimmte Berechtigungen, um auf ihre Daten zugreifen. Und noch mehr erweiterte APIs, wie die Facebook ein, benötigen bestimmte Berechtigungen, um bestimmte Dinge zu tun. Ich sehe diese grundlegende Informationen über David Malan. Ich kann sehen, dass er männlich ist und dass er lebt in den USA, aber ich kann nicht wirklich etwas sehen Vergangenheit, dass. Um dies jetzt zu erhalten, muss Facebook dieses nette Tool was ist der Graph API Explorer, und der Gedanke, dass ist, können Sie sortieren von Make-up Berechtigungen für sich selbst basierend auf Ihr eigenes Konto und dann sehen Dinge, die speziell Ihrem Konto sehen können. Zum Beispiel, wenn ich graph.facebook.com/billyjanitsch/likes- hoppla, ich denke, ich muss meine Token hier erneut zu überprüfen. Okay. Wenn ich das wieder tun, große, jetzt sehe ich, dass ich dieses Objekt zurück die besagt, dass I-Pool-Nudeln, die in der Kategorie Spiele und Spielzeuge haben möchten. Ich mag Walrosse, die in der Kategorie Tiere sind. Das sind meine eigentliche Facebook mag. Sie sind irgendwie peinlich. Aber wir sehen können, diese Daten alle in JSON zurückgegeben. Es ist ziemlich lesbar. Mit anderen Worten haben wir diese Zuordnung der Daten zu einer Art eines Arrays, und jedes Element dieses Arrays ist ein hashmap Welche Karten der Name einer dergleichen und die Kategorie einer dergleichen. Jedes dergleichen weist eine eindeutige ID. Es gibt alle Arten von verschiedenen Dingen von Daten, die wir bekommen können, und wenn man sich mit dem Facebook-API für einen CS50 endgültige Projekt interessiert oder für etwas, dass es eigentlich ganz machbar. Grundsätzlich, wie Sie rund um die Authentifizierung, was zu bekommen ist Facebook verwendet ein System namens OAuth oder Open Authentication, und ich möchte nicht in sie jetzt bekommen, weil OAuth oder die andere Art der Authentifizierung neigt dazu, eine Menge zwischen verschiedenen APIs variieren, so konnte ich eine lange Zeit gehen über jedes verbringen, aber sie sind eigentlich ziemlich selbsterklärend. Wenn Sie Google Facebook API ist es sehr gut lesbar. Es gibt eine ganze spec. Zum Beispiel ist dies die Dokumentation für die Facebook-API und Sie können sehen, ich bin auf der Seite Benutzer, so kann ich alles über die verschiedenen Arten von Dinge zu lernen , die zur Verfügung stehen, soweit Daten zu erhalten sind und auch die verschiedenen Berechtigungen, die ich brauche, um auf sie zuzugreifen. Wie wir gesehen haben, brauchen wir nicht Berechtigungen auf den Namen oder das Geschlecht zuzugreifen, aber darüber hinaus brauchen wir Berechtigungen für die meisten Dinge. Diese Seite, oder besser gesagt, diese Website wird Ihnen auch sagen, wie man ein Token in der Lage sein, um sich zu authentifizieren. Die meisten Authentifizierungssysteme verwenden irgendeine Art von Token wo Sie diese einzigartige Wert, das ist eine wirklich lange und zufällige Zeichenfolge, und auf diese Weise können sie assoziieren die Anfrage, dass du mit dir machen. In anderen Worten, sie wissen, dass Sie nicht tun etwas Verdächtiges mit ihren Daten. Sie wissen genau, was Sie bekommen. Sie wissen auch, dass Sie die Erlaubnis, diese Informationen anzeigen zu können. Wenn Sie gemacht haben eine Facebook-App und Ihre Anwendung hat bestimmte Benutzer, und diese Benutzer haben erlaubt, dass App auf bestimmte Teile ihres Profils zugreifen, dann unabhängig von API-Schlüssel oder Token, dass App ist mit in der Lage, die Daten für die Benutzer zugreifen können. Das klingt vielleicht kompliziert, aber es ist nicht so schlimm, und wenn Sie Facebook nutzen wollen Ich würde empfehlen, dass Sie halten Herumspielen mit ihren API. Es ist sehr cool, und Sie können eine Menge verschiedener Dinge zu tun. Wenn der Benutzer gewährt Ihnen diese Berechtigungen können Sie sogar zurück in die API und sagen, ich will eigentlich dieses Benutzers Wand zu veröffentlichen, oder will ich haben ihnen erlaubt, ein Foto, und deshalb auf Ihrer News-Feed Sie manchmal bekommen diese nervigen Dinge sagt Ihr Freund hat dieses Video auf irgendeine Art von seltsamen Ort oder so ähnlich sah. Das liegt daran, dass App wurde Zugang zu dieser Person die Mauer verfassen gewährt wurde. Die Idee Insgesamt ist die Facebook-API ziemlich kompliziert, sondern auch sehr nützlich. Definitiv lohnt sich, wenn Sie noch auf der Suche für eine endgültige Projekt. Ein weiterer Suite von APIs, dass ich werde gehen vorbei ist CS50 APIs. Lassen Sie mich hier zu vergrößern. CS50 tatsächlich zusammen eine ganze Reihe von APIs dass man für eine endgültige Projekt oder nur für alles, was du machst verwenden. Und sie sind meist Harvard verwandten, und sie unterscheiden sich von den HUDS Menü zum Beispiel zu dieser Harvard Events API, das wird Ihnen Zugriff auf eine Liste der verschiedene Ereignisse, die passiert sind in Harvard und diese Art von Dingen. Und so können wir auf einem von ihnen klicken und eine Spezifikation für sie, die Sie in der Lage, für jede API zu finden, und die Idee ist es lässt Sie wissen, A, speziell, was aus der API anfordern und wie es zu beantragen. In anderen Worten, wenn ich alle Ereignisse, die passiert morgen dann habe ich, offensichtlich gibt es dieses Datum, dass ich will in einem bestimmten Format, und B, wird es mir genau sagen, was es gehen, um wieder zu mir. Er wird sagen: Ich werde kehren Sie dieses JSON-Objekt, oder wie Sie sehen können, gibt es verschiedene Formate. Sie können auch wieder die Daten als CSV, zum Beispiel. Aber wissen Sie genau, wie diese Daten aussehen wird, wenn Sie es wieder so können Sie erwarten, um bestimmte Dinge zu tun. Wir können nach unten scrollen und zu sehen, zum Beispiel, wenn wir die API abgefragt werden soll um einen Kalender zu bekommen, dann können wir diese spezielle URL und geben Sie es bestimmte Parameter, die gehen, um die Daten, die wir wollen genau das sein werden. Und ebenso, wenn wir wollen, dass die Daten wieder in einem bestimmten Format, dann können wir sie auffordern, die Daten in eine CSV-Ausgabe, und das ist nur ein weiterer Parameter, dass wir auf die API vorbei. Viele coole Dinge zu tun gibt. Ich würde definitiv empfehlen Auschecken der CS50 APIs. Ich werde an dieser Harvard Lebensmittel API insbesondere sucht ein wenig. Eine Sache, die ich eigentlich entworfen haben ist dies Harvard Noms Website was nutzt das CS50 Lebensmittel API, um die HUDS Menü für den Tag abzurufen. Und für die Erweiterung der Schule Menschen ist HUDS der Speisesaal-Service in Harvard. Was Sie bekommen, ist diese Seite, die alle Mahlzeiten enthält für den Tag, so sehen wir das Mittagessen. Wir haben ein paar verschiedene Kategorien. Wir haben die Bohnen und Vollkornprodukte Station. Wir haben die braunen Reis Station. Wir können zum Brunch sehen, wir haben diese wenigen Lebensmitteln. Wenn wir auf sie, dann bekommen wir die Nährwertangaben. Sie sehen, das ist die Nährwertangaben für Grapefruit, falls Sie sich wundern. Und so wieder, wir gehen in die Back-End hier etwas Peer und sehen, was genau dies tut, um diese Daten zu bekommen. Und es stellt sich heraus, eigentlich nicht sehr komplex sein überhaupt. Diese Datei sieht ein wenig chaotisch, aber bedenken Sie, dass dies die Handhabung des gesamten Website und wenn ich nach unten scrollen sehen wir diese Daten ändern Funktion. Nun nur klar zu sein, ist dies in CoffeeScript geschrieben das ist eine Sprache, die Sie wahrscheinlich noch nicht gesehen. Aber es ist ziemlich lesbar ist, also werde ich durch sie hindurchgehen, als wäre es Pseudocode waren. Änderungs-Datum ist eine Funktion, die gehen in diesem Datum Wert annehmen ist, und es ist auch werde in einem ersten zu nehmen, was wir nicht so viel Pflege. Aber das Wichtigste ist, dass es dieses Datum hat, und dass ist der Tag, dass wir alle Lebensmittel für anfordern möchten. Und dann sehen, wir haben ein wenig Syntax hier, das ist im Grunde das Parsen dieses Datum in ein lesbares Format. Mit anderen Worten erfordert die API die Daten in einem bestimmten Format. Man kann nicht einfach sagen, 16. November 2012 AD. Es wird nicht wissen, was damit zu tun. Er will das Datum in einem bestimmten Format. Alles, was wir eigentlich hier sind ist was es genau das Format, das ist ein Wert für das Jahr und dann ein Bindestrich, einen Wert für den Monat, ein weiterer Bindestrich und das Datum Wert. Und wir sagen auch, wir wollen die auszugebenden Daten in JSON sein. Nun wir machen diese AJAX-Anfrage, und wie ich bereits erwähnt, jQuery hat diese super nützlich AJAX-Funktion, die alles, was Sie tun müssen, ist anzugeben wenige Parameter hier unten, und es wird Sie wieder genau das, was Sie wollen zu geben. Wir sagen, dass die URL, die wir wollen, dass es zu gehen in diesem CS50 Lebensmittel API ist, die wir aus dem spec. Wir sagen, dass wir die Daten in JSON und das wollen wir gehen, um ihm diese Daten, die wir hier oben definiert haben. Dies ist der Tag wollen wir die Lebensmittel für. Und dann alles, was wir tun müssen, ist zu definieren irgendeine Art von Erfolg Funktion das ist im Grunde, was passiert, wenn die API gibt, dass die Daten. In anderen Worten, wir haben bis alle Parameter, die wir wollen verpackt, die in diesem Fall ist der Tag, dass wir es wollen und die Tatsache, dass wir es wollen in JSON, und wir schickten ihn an den API, so dass nun die API sagt, okay, Hier werden Ihre Daten, bekam ich es wieder für Sie. Wir haben den Erfolg Funktion, was bedeutet, da die API erfolgreich zurückgegeben einige Daten, was haben wir damit zu tun? Und es stellt sich heraus, dass alles, was wir tun, rufen Sie dieses Update Menüfunktion mit dem, was die API zurückgegeben hat, so können wir für diese Suche und sehen, dass alles, was wir tun, ist mit einer Reihe von neuen Syntax hier die HTML aktualisieren und fügen diese neuen Daten. Was dies ermöglicht ist, wir haben diese Pfeile auf beiden Seiten, und wir können klicken, und jetzt sind wir auf die Daten für den nächsten Tag suchen und wieder für den nächsten Tag, und jedes Mal ist es die Aktualisierung dieses Datum Wert und Abfragen der API, immer wieder einige Daten und legt es in die Website. Auch hier können Sie sehen, super, super nützlich. Diese App hat mich ein paar Stunden zusammen zu hacken, und ich habe ein bisschen mehr Erfahrung, natürlich, aber Ihre CS50 endgültige Projekt kann etwas sehr ähnlich aussehen. APIs sind super stark für die Höhe der Anstrengung, die sie nehmen. Das letzte was ich gehen über mich ist ein paar mehr APIs breit. Ich werde nicht so weit kommen in ihnen so weit wie das, was sie tun, insbesondere aber ich werde Ihnen eine Vorstellung von dem, was da draußen ist. 2 wirklich sinnvolle Dinge, wenn Sie in der Datenanalyse oder Visualisierung interessiert oder so etwas sind Freebase und Wikipedia. Wikipedia-Sie vermutlich alle wissen-ist eine freie Online-Enzyklopädie, und es hat tatsächlich eine API, so dass, wenn Sie wollen, zum Beispiel, Sie alle Texte und die Artikel für Tintenfisch Sie können sehr leicht tun. Just say hey, Wikipedia API, würde Ich mag die Daten als diese zurückkehrten, und ich würde es in diesem Format mag, und die Artikel möchte ich es Tintenfisch, und sehr schnell wird es Ihnen zurück, dass die Informationen. Das kann wirklich nützlich sein, wenn Sie irgendeine Art von Website machen wollen , dass es eine bessere Viewer für Wikipedia oder so ähnlich. Freebase ist eine Art ähnlich, obwohl es ein wenig härter ist so weit wie API. Freebase ist wie Wikipedia, dass es ist eine Online-Enzyklopädie die enthält sehr viele unterschiedliche Daten über alle Arten von verschiedenen Themen, aber es ist in einer relationalen Datenbank, die leicht von Wikipedia ist gespeichert. Wikipedia hat seine Artikel und Gegenstände im Zusammenhang mit anderen Artikeln, aber zum größten Teil, wenn Sie wollen, dass die Daten für Oktopus, Sie gehen, um die Krake Artikel erhalten, dass die Daten, und Sie haben eine Reihe von Text über Tintenfische, so, das ist großartig. Freebase arbeitet in einer etwas komplizierteren Weise, dass alles miteinander verwandt. In anderen Worten, wenn wir für Tintenfische suchen dann hat es eine Reihe von Kategorien zugeordnet. Zum Beispiel ist es ein Tier ist, lebt sie unter Wasser, es hat einen bestimmten Körpertemperatur. Ich weiß nicht. Und all diese Kategorien sind Links zu anderen Orten, wo man gehen kann die Dinge mit der gleichen Kategorie zu sehen. In anderen Worten, die Krake Datensatz enthält einen Link auf die Daten für alle Tiere und dass würde mich bewegen, in der Datenbank wirklich schnell. Dies kann sehr nützlich sein, wenn Sie etwas wie Vergleiche sind. Mit anderen Worten, da eine bestimmte Sache, Sie wollen, um zu sehen was es ist verwandt und sehen, was es nicht verwandt. Diese Art der Sache. Es kann in einer Anzahl von Arten nützlich. Wenn Sie sich für eine größere Herausforderung suchen und in der Lage sein, einige komplexere Dinge zu tun Ich würde in Betracht ziehen, einen Blick auf die Freebase API. Aber vor allem ist Wikipedia eine sehr einfache Ort, um so weit wie immer Informationen gehen. Ein weiterer Ort, dass ich schauen müssen, ist Last.fm, und ich bin eigentlich los, um auf die Website gehen Bei einigen Menschen sind nicht vertraut, aber Last.fm ist im Grunde ein Musik Geschmack und Empfehlungen Website. Sie können ein Konto. Sie können das Hochladen von Musik von Ihrem Musik-Player starten auf der Website, und im Grunde wird es anfangen, Ihnen Musik-Empfehlungen auf, was Sie zu hören. Zum Beispiel, wenn Sie zu Ihrem Profil gehen Seite, das ist mine- können Sie sehen, haben Sie eine Liste der zuletzt hörte Tracks. Sie können sehen, insgesamt Lieblingskünstler, alle von dieser Art der Sache, und wieder gibt es eine große API hinter Last.fm,  und Sie können es verwenden, um viele, viele wirklich coole Dinge zu tun. Zum Beispiel, werde ich zu einem Freund Seite, die dieses Last.fm Tools Website hat zu gehen. Dies ist tatsächlich eine weitere Plattform, die auf der Last.fm API integriert ist, und es tut eine Reihe von ziemlich interessante Dinge. Wenn ich mich einlogge mit meinem Benutzernamen, z. B. Ich kann sie auffordern, eine Tag-Cloud zu erzeugen, zum Beispiel, und was das tun hat ist mir wieder ein Bild von all die verschiedenen Genres und diese Art von Dingen, die Ich mag zu hören. Wie ist es, dies zu tun? Sehr im Grunde ist es der Last.fm API sagen hier ist das Benutzer. Ich möchte das Genre der jedem Song wissen, dass sie jemals hörte, und das kann man, indem eine ziemlich einfache AJAX-Aufruf an die Last.fm API zu tun. Du wirst wieder eine große Liste, und dann natürlich einige andere Sachen getan wird um es in einem Wort Wolke drehen, aber man kann sehen insgesamt es ist sehr einfach zu erreichen und sehr einfach zu bedienen. Wirklich schön für eine Reihe von Dingen. Ich denke, das ist alles, was ich insgesamt sagen werde. Eine letzte Sache, die ich über APIs in der Regel werde erwähnen ist, dass Sie manchmal in etwas namens Rate Limiting laufen, und die Idee der geschwindigkeitsbestimmende ist, dass Sie nicht wollen, APIs zu missbrauchen. In anderen Worten, es ist wirklich schön, dass eine Menge von diesen Webseiten APIs dass Sie zu gehen und kostenlos zu nutzen. Allerdings, wenn Sie machen Millionen oder Milliarden von Anfragen pro Tag, zum Beispiel, wenn Sie in einer Endlosschleife, die unendlich Abfrage steckt fest irgendeine Art von API und immer wieder eine riesige Menge von Daten, offensichtlich, dass ist nicht gut, so was viele APIs tun Rate Limiting haben Merkmal ist das sagt, dass man nur 1.000 Anfragen pro Tag und pro IP-Adresse oder so ähnlich. Und wenn Sie tun eine Menge Tests und diese Art der Sache, Sie manchmal in die laufen, und plötzlich werden Sie abgeschaltet und nein sagen, ich bin nicht geben Ihnen keine weiteren Daten. Was möchten Sie tun müssen, ist an die Regeln halten. Sie wollen sicherstellen, dass Sie die API-Spezifikation sorgfältig zu lesen. Wenn es bestimmte Regeln attached to it, wie Sie hat, kann nur X-Abfragen pro Tag oder man kann nur auf einen Teil der Datenbank eine bestimmte Anzahl von Malen oder so ähnlich, dass Sie wollen sicherstellen, dass man sich an, dass. Solange Sie in diesen Regeln spielen Sie wahrscheinlich eine wirklich schöne Zeit mit APIs. Ihre allgemeine Takeaway ist APIs sind wirklich, wirklich nützlich. Es gibt eine API für fast jede große Web-Service gibt. So ziemlich jedes Teil des Google Tools Suite, Google Maps, Google Earth, GMail, Google Calendar, all diese Dinge APIs. Sie können sie auf beiden get Daten aus dem Server verwenden und Senden von Daten an den Server. In anderen Worten, wenn Sie einen Kalender App machen wollte, die aktualisieren können jemand Google Calendar, gibt es eine API dafür. Wenn Sie etwas, das Ihnen sagen, wo ist machen die Lage einer bestimmten Adresse ist, können Sie das Google Maps API für diese Verwendung. APIs sind fantastisch nützlich, und sie sind überall. Wenn Sie in irgendeiner Art von Idee interessiert, gibt es wahrscheinlich eine verwandte API, die Sie verwenden, um eine große Menge von Daten erhalten können sehr schnell und sehr einfach. Wenn Sie noch auf der Suche für ein Projekt oder wenn Sie nur wollen, um zu spielen mit etwas in der Regel sind APIs definitiv lohnt. Vielen Dank, und ich bin glücklich, alle Fragen, die euch zu beantworten. Okay, vielen Dank. [CS50.TV]