1 00:00:00,000 --> 00:00:02,480 [Powered by Google Translate] [セミナー] [APIへのプログラマーズ入門] 2 00:00:02,480 --> 00:00:04,059 [ビリーJanitsch] [ハーバード大学] [トミーM​​acWilliam] 3 00:00:04,059 --> 00:00:08,220 [これはCS50です。] [CS50.TV] 4 00:00:08,220 --> 00:00:12,100 >> 皆さん、こんにちは、私はビリーだし、今日は、APIについて話をするつもりだ 5 00:00:12,100 --> 00:00:15,220 またはアプリケーション·プログラミング·インターフェース、 6 00:00:15,220 --> 00:00:20,040 特にCS50最終的なプロジェクトのコンテキストとそういったことインチ 7 00:00:20,040 --> 00:00:22,490 一般的にはAPIとは何ですか? 8 00:00:22,490 --> 00:00:25,530 非常に広い意味では、それが2個できます真ん中の男のようなものだ 9 00:00:25,530 --> 00:00:28,610 互いに通信するためのソフトウェア。 10 00:00:28,610 --> 00:00:32,530 それは非常に広い定義のようなものだと我々は見ている何のためにそれは関係ありません。 11 00:00:32,530 --> 00:00:35,450 我々が本当に欲しいのは便利な中間点のいくつかの並べ替えです 12 00:00:35,450 --> 00:00:40,570 どこかのデータベースのいくつかの並べ替えと通信することができます。 13 00:00:40,570 --> 00:00:43,310 >> ここでは、チャートだし、基本的な考え方は、 14 00:00:43,310 --> 00:00:46,790 我々は、アプリケーションであり、我々は、データベースからデータを取得したい、 15 00:00:46,790 --> 00:00:49,570 しかし、我々は直接データベースを照会する必要はありません。 16 00:00:49,570 --> 00:00:52,710 代わりに、私たちは真ん中の男のこの種の、APIを介して行きたいと思います。 17 00:00:52,710 --> 00:00:55,440 背後にある考え方は、チャート上の数字2と3である 18 00:00:55,440 --> 00:00:57,750 両方のは非常に複雑で面倒になるだろうしている。 19 00:00:57,750 --> 00:00:59,960 言い換えれば、APIは、データベースを照会しているときに、 20 00:00:59,960 --> 00:01:03,300 それはおそらく、SQLテーブルとスタッフのその種のすべてを使用することになるだろう 21 00:01:03,300 --> 00:01:05,489 そして我々は、CS50でも少しですが、全体的なことを学びました 22 00:01:05,489 --> 00:01:07,590 あなたはそれが痛みのビットだということに気付きました。 23 00:01:07,590 --> 00:01:10,590 それはあなたが作っている場合は特に、非常に、非常に複雑で乱雑 24 00:01:10,590 --> 00:01:12,530 複雑なクエリとそういったこと。 25 00:01:12,530 --> 00:01:15,960 >> 我々が本当に欲しいのは、便利で簡単な方法のいくつかの並べ替えです 26 00:01:15,960 --> 00:01:19,780 そのデータを取得し、それはチャート上の番号1と4の背後にあるアイデアだします。 27 00:01:19,780 --> 00:01:23,600 言い換えれば、私たちは私たちのために何を取得するためのAPIを伝えるために本当に簡単な方法が欲しい 28 00:01:23,600 --> 00:01:27,760 戻され、そのデータを取得するための本当に簡単な方法です。 29 00:01:27,760 --> 00:01:33,020 そのデータは、通常、送信および受信されたことを一つの主な方法は、あります 30 00:01:33,020 --> 00:01:36,490 JSON、またはJavaScriptオブジェクト表記はどれですか。 31 00:01:36,490 --> 00:01:40,370 それは、はるかにあなたは、APIへのリクエストを送信する方法などを少し変えることができます。 32 00:01:40,370 --> 00:01:43,210 言い換えれば、あなたはデータの一部が一定の金額をしたい場合は、 33 00:01:43,210 --> 00:01:46,670 どのようにデータが少し異なる場合がありますことを取得するAPIを教えてください。 34 00:01:46,670 --> 00:01:49,210 通常は、ネットワーク要求のいくつかの並べ替えを行うことが含まれます。 35 00:01:49,210 --> 00:01:53,130 言い換えれば、APIを伝えるために起こっているURLのいくつかの並べ替えにアクセス 36 00:01:53,130 --> 00:01:56,190 正確に何をしたいが、データはほぼ必ず返送され、 37 00:01:56,190 --> 00:01:59,530 言い換えれば、JSONで番号4。 38 00:01:59,530 --> 00:02:01,030 >> JSONは正確には何ですか? 39 00:02:01,030 --> 00:02:03,030 私が言ったように、JavaScriptのオブジェクト表記法。 40 00:02:03,030 --> 00:02:07,090 それは基本的にデータを送受信するための普遍的な標準です。 41 00:02:07,090 --> 00:02:11,410 アイデアは、あなたが物事のこれらの3つのカテゴリを持っているということです。 42 00:02:11,410 --> 00:02:13,540 あなたは、配列、ハッシュマップ、プリミティブを持っています。 43 00:02:13,540 --> 00:02:16,580 あなたはCS50で少し見てきた配列やハッシュマップ、 44 00:02:16,580 --> 00:02:19,870 しかし、あなたは一種の彼らが何であるかの非常に厳密な意味を得ている。 45 00:02:19,870 --> 00:02:22,780 言い換えれば、あなたは彼らがバインド入力していることを知っている配列を持つ 46 00:02:22,780 --> 00:02:26,560 ので、あなただけのアレイ全体にわたって行くタイプのものの並べ替えを持っている。 47 00:02:26,560 --> 00:02:29,310 JSONは、そういったことと、より多くの寛大です。 48 00:02:29,310 --> 00:02:33,590 基本的な考え方は、このオブジェクトを構築している 49 00:02:33,590 --> 00:02:36,270 これらの3つのもののいずれかで構成することができる 50 00:02:36,270 --> 00:02:39,470 そのうちの複数のものから構成することができ、それらは入れ子にすることができます。 51 00:02:39,470 --> 00:02:42,110 >> JSONの例のここでの並べ替え、 52 00:02:42,110 --> 00:02:47,910 ここで、これらの中括弧は、HashMapを表しているかですが、 53 00:02:47,910 --> 00:02:51,400 とHashMapには、基本的にキーのいくつかの並べ替えからマッピングしたものです 54 00:02:51,400 --> 00:02:53,340 値のいくつかの並べ替えに。 55 00:02:53,340 --> 00:02:56,440 あなたは、我々は、プロパティのキーを持っていることをここに表示されます 56 00:02:56,440 --> 00:02:59,600 そしてそれはこの全体のことである配列にマッピングの。 57 00:02:59,600 --> 00:03:04,120 我々は、このキーisAwesomeですHashMapの別の要素を参照してください 58 00:03:04,120 --> 00:03:07,370 その真偽値、言い換えれば、真のプリミティブな値にマップされます。 59 00:03:07,370 --> 00:03:09,420 プリミティブは、文字列にすることができます。彼らは、整数を指定できます。 60 00:03:09,420 --> 00:03:11,960 彼らは、そのような何かboolsすることができます。 61 00:03:11,960 --> 00:03:18,410 そして、あなたは、プロパティのポイントがそれで2つの文字列を持ってすることを、この配列の内容を参照してください。 62 00:03:18,410 --> 00:03:20,050 自己相似と素晴らしい。 63 00:03:20,050 --> 00:03:27,410 それらは、JSONの2つのプロパティであり、我々はJSONは驚くばかりであることがわかります。 64 00:03:27,410 --> 00:03:30,060 それを見てもう少し密接に私が構築するつもりだ 65 00:03:30,060 --> 00:03:32,870 ここではJSONのより複雑な例。 66 00:03:32,870 --> 00:03:37,000 >> 配列、例えば、ちょうど空の配列から始めましょう。 67 00:03:37,000 --> 00:03:39,180 しかし、それは退屈なものだので、私たちは、少しそれを埋めるつもりだ 68 00:03:39,180 --> 00:03:43,420 私が言ったようにして、JSONの配列は、バインドされたタイプです 69 00:03:43,420 --> 00:03:46,400 ので、我々はまた、ハイテクである、ここに文字列を与える可能性があります 70 00:03:46,400 --> 00:03:49,330 そしてそれは、その配列の別の要素だ。 71 00:03:49,330 --> 00:03:53,450 と同様に、我々はいくつかのマッピングを持っているつもりされている、ここでhashmappingを追加することができます。 72 00:03:53,450 --> 00:04:00,470 これは、名前から文字列ビリーへのマッピングを持っているために起こっている。 73 00:04:00,470 --> 00:04:04,590 私たちは、名前からビリーへのマッピングを持って、私たちはのマッピングを持っている 74 00:04:04,590 --> 00:04:10,860 青に好きな色。 75 00:04:10,860 --> 00:04:12,700 それは基本的にはJSONの良い例だ。 76 00:04:12,700 --> 00:04:18,160 それは、どのような種類のは、おっとに取得し、それのさまざまな部分のコンマは、すべてを必要としています。 77 00:04:18,160 --> 00:04:21,140 繰り返しになりますが、それがすべてでバインドタイプではないので、あなたは、どのような種類の型を持つことができる 78 00:04:21,140 --> 00:04:24,710 あなたが欲しいもの、アイデアの中にそれが自己相似だです。 79 00:04:24,710 --> 00:04:28,830 言い換えれば、ここでこの権利は、この全体のことであるように、JSONオブジェクトであり、 80 00:04:28,830 --> 00:04:33,200 これがちょうどあるように、あなたがたも、オブジェクトであるプリミティブを持つことができます 81 00:04:33,200 --> 00:04:35,680 配列はオブジェクトまたはHashMapオブジェクトにすることである。 82 00:04:35,680 --> 00:04:40,270 >> あなたが見るの一種ができるように、JSONはそれはとても万能だという点で、本当に便利です。 83 00:04:40,270 --> 00:04:45,860 あなたはあなたがJSON形式で保存されて想像することができる可能性のあるデータを持つことができます。 84 00:04:45,860 --> 00:04:47,900 それのAPIで使用する本当にいい言語ですその 85 00:04:47,900 --> 00:04:50,770 それはかなりあなたは何をしたいデータに関係なくことを意味するので、 86 00:04:50,770 --> 00:04:54,270 JSONでそれを取り戻すためにいくつかの方法があるだろう。 87 00:04:54,270 --> 00:04:58,600 この種のことのためにJSONが特に良いよう、いくつかのプロパティ。 88 00:04:58,600 --> 00:05:02,270 あなたが見ることができるように、あなたはCS50でと仕事をしてきたことの多くに比べ 89 00:05:02,270 --> 00:05:06,040 それは記述することも非常に読みやすく、比較的非常に簡単だと。 90 00:05:06,040 --> 00:05:09,700 あなたが望むなら、私はその例でやっていたようにあなたは、それをインデントすることができ、 91 00:05:09,700 --> 00:05:12,990 それはあなたが本当によく見ることができる素敵な、かわいらしいバージョンを提供します。 92 00:05:12,990 --> 00:05:17,150 しかし、また、それは、コンピュータのための読み取りと書き込みをすることも簡単です。 93 00:05:17,150 --> 00:05:19,870 言い換えれば、それは、エンコードするために解析することが容易で簡単です 94 00:05:19,870 --> 00:05:23,820 これは、それがはるか​​に懸念しているデータを読み取るようにかなり速いということを意味します 95 00:05:23,820 --> 00:05:26,460 そしてJSONは本当に迅速に生成することができます。 96 00:05:26,460 --> 00:05:30,300 >> これは、JSONと、そういったことの様々な部分へのアクセスにも非常に簡単です。 97 00:05:30,300 --> 00:05:33,320 それはいいですし、さらに、それは自己相似であるという事実、 98 00:05:33,320 --> 00:05:36,090 言い換えれば、あなたは、JSON内のJSON内のJSONを持つことができるという事実 99 00:05:36,090 --> 00:05:40,040 データを格納するための本当にいいです。 100 00:05:40,040 --> 00:05:45,490 一般的なAPIでの作業には本当に便利です別の部分はjQueryです。 101 00:05:45,490 --> 00:05:49,290 アドレスを確認するにはJavaScriptを少し学んできた、これは良い方法です 102 00:05:49,290 --> 00:05:53,710 ウェブサイト内のHTMLとCSSを操作する。 103 00:05:53,710 --> 00:05:57,190 しかし、それは同じ種類で、プレーンなJavaScriptのコードに痛みをすることができます 104 00:05:57,190 --> 00:05:59,810 JavaScriptは本当に冗長な言語である主な理由。 105 00:05:59,810 --> 00:06:03,020 あなたは、構文の多くを学ぶ必要があり、非常に単純なことを行うこと 106 00:06:03,020 --> 00:06:07,590 それは、多くのコードを取るので、jQueryはJavaScriptのためのライブラリです。 107 00:06:07,590 --> 00:06:09,800 言い換えれば、それはあなたがロードできるJavaScriptファイルです 108 00:06:09,800 --> 00:06:12,730 その後、特定の物事を行うにはjQueryの関数を使用します。 109 00:06:12,730 --> 00:06:15,670 とjQueryは基本的にあなたの人生ずっと簡単になります。 110 00:06:15,670 --> 00:06:20,390 これは、jQueryで数行にJavaScriptで数百行を下にかかるものが簡素化されます。 111 00:06:20,390 --> 00:06:24,430 >> 一般的にので、APIを使用している場合には特に便利です 112 00:06:24,430 --> 00:06:27,600 がAPIにアクセスすることがありますどのように、AJAXリクエストを行うことである 113 00:06:27,600 --> 00:06:30,130 と私はダビデが講演で言及していると信じているAJAXリクエスト 114 00:06:30,130 --> 00:06:33,120 あなたはサーバーのいくつかの並べ替えにネットワーク要求を作っているときに一般的に 115 00:06:33,120 --> 00:06:37,760 およびデータのいくつかの並べ替えを取り戻すと瞬時にページを更新する。 116 00:06:37,760 --> 00:06:41,840 平野JavaScriptで線のクレイジー数字を取ると、その一方で 117 00:06:41,840 --> 00:06:44,620 、すべてのヘッダーを検証し、スタッフのその種のすべての操作を実行する 118 00:06:44,620 --> 00:06:46,810 jQueryは、AJAXと呼ば本当にシンプルな機能を持ってい 119 00:06:46,810 --> 00:06:51,760 そしてあなたはAJAXでなければならないすべては、あなたがAPIを提供したいパラメータを与えることです 120 00:06:51,760 --> 00:06:56,830 APIの位置し、構成するいずれかのオプション追加のソート。 121 00:06:56,830 --> 00:07:02,480 それはこの種のもののために、本当に、本当に素晴らしく、非常に便利です。 122 00:07:02,480 --> 00:07:06,970 それは我々がAPIで、我々の手を汚さ開始に必要なすべてです。 123 00:07:06,970 --> 00:07:10,220 >> 私はいくつかの例を持ち出すとその異なる性質を探求するつもりだ 124 00:07:10,220 --> 00:07:13,150 そして、なぜ、彼らは様々な種類のもののために便利だ。 125 00:07:13,150 --> 00:07:15,570 私は実際にあなたが表示されます最初の事は私が働いているものです 126 00:07:15,570 --> 00:07:18,310 NGRAMビューアである私の研究室、で、 127 00:07:18,310 --> 00:07:23,270 とNGRAMビューアの基本的考え方は、単語のいくつかの種類を検索することができますです 128 00:07:23,270 --> 00:07:28,840 やフレーズ、それは時間をかけてテキストの特定のセットに登場したのはどのくらいの頻度で参照してください。 129 00:07:28,840 --> 00:07:33,160 ここでこの例では、赤ちゃんのこのデータ·セットです 130 00:07:33,160 --> 00:07:36,480 それは1920年から2000年の間にニューヨークで生まれた。 131 00:07:36,480 --> 00:07:40,090 我々は、名前のジェニファーのために、たとえば、検索することができます 132 00:07:40,090 --> 00:07:44,400 そして我々は、それが本当にそれほど使われていなかったプレ1960いることがわかり 133 00:07:44,400 --> 00:07:48,900 我々は後年に入るとして、それがますます使用されるようになっている。 134 00:07:48,900 --> 00:07:53,680 我々はまた、例えば、我々はジェニファーを比較すればそう、トーマスを比較を行うことができます 135 00:07:53,680 --> 00:07:56,520 私たちは、トーマスが歴史を通してかなり普及している見ることができます 136 00:07:56,520 --> 00:07:58,780 ジェニファーに対し、より最近の名前です。 137 00:07:58,780 --> 00:08:00,590 私たちはそういったことを行うことができます。 138 00:08:00,590 --> 00:08:02,460 >> これは、アプリケーションがどのように動作しますか? 139 00:08:02,460 --> 00:08:06,030 基本的には、APIを介して動作します。 140 00:08:06,030 --> 00:08:08,660 言い換えれば、我々はここで特定のパラメータを持っています。 141 00:08:08,660 --> 00:08:11,360 我々は、我々が実際に探しているかのパラメータを持っている 142 00:08:11,360 --> 00:08:13,720 れ、これらの名前になり、その後、我々はいくつかの他のプロパティを持っている、 143 00:08:13,720 --> 00:08:16,570 Y軸とX軸のような。 144 00:08:16,570 --> 00:08:18,440 あなたは、私たちは、限り、いくつかの異なるオプションがありますを参照してくださいすることができます 145 00:08:18,440 --> 00:08:20,860 時間使用する解像度と、そういったこと。 146 00:08:20,860 --> 00:08:26,700 私たちは、限り我々は、実際にデータベースから欲しいものをデータとして、これらのオプションを持っている 147 00:08:26,700 --> 00:08:29,400 そして我々は戻って、いくつかの有用な方法でそのデータを取得したい。 148 00:08:29,400 --> 00:08:34,020 我々はデータベースを照会された場合、通常、直接それを行うために苦痛になるの並べ替えたい 149 00:08:34,020 --> 00:08:38,970 赤ちゃんの名前については、おそらく、このデータはどこかにいくつかのデータベースに住んでいるので、 150 00:08:38,970 --> 00:08:42,789 そしてそれは実際にそれを手動でクエリする必要が複雑になるであろう 151 00:08:42,789 --> 00:08:45,830 そしてデータは返したい値を正確に決められる。 152 00:08:45,830 --> 00:08:49,300 言い換えれば、私たちは、この場合のみジェニファーとトーマス気遣い、 153 00:08:49,300 --> 00:08:53,410 そして我々は、特定の軸とスタッフのその種のすべてに気になります。 154 00:08:53,410 --> 00:08:55,720 >> どのように我々はこれを回避するのですか? 155 00:08:55,720 --> 00:09:01,200 もう少しこのAPIを掘り下げるために、私はあなたにこのプラットフォームの別の例を紹介します 156 00:09:01,200 --> 00:09:04,490 これは、わずかに異なるデータセットを使用します。 157 00:09:04,490 --> 00:09:09,950 このデータセットは、代わりに赤ちゃんの名前であることの、ちょうど実際に全体です 158 00:09:09,950 --> 00:09:12,460 、開かれているライブラリーのパブリケーションデータベースを印刷 159 00:09:12,460 --> 00:09:18,410 これは、過去100年かそこらにわたって公開されてテキストの巨大な源である。 160 00:09:18,410 --> 00:09:23,540 アイデアは、我々はテキストの何百万、何百万人のこのcompositoryを持っていることです 161 00:09:23,540 --> 00:09:27,420 我々は今、インチ別の単語やフレーズを検索できる 162 00:09:27,420 --> 00:09:30,840 ここでは少し違った、前の例から変化する例を次に示します。 163 00:09:30,840 --> 00:09:33,350 私は、我々はこれらの3つの検索クエリを持っているである、お見せした 164 00:09:33,350 --> 00:09:36,290 戦争、戦争、戦争guerreある、フレンチ言葉。 165 00:09:36,290 --> 00:09:40,380 そして、我々は、データベースの合計3つの異なるセクション内で検索しています。 166 00:09:40,380 --> 00:09:45,080 言い換えれば、この最初のクエリで、我々は米国のみで検索している、 167 00:09:45,080 --> 00:09:51,150 英国だけで、2つ目とフランスのみで出版された作品から三インチ 168 00:09:51,150 --> 00:09:53,120 我々は、いくつかの興味深いパターンが出現してください。 169 00:09:53,120 --> 00:09:58,180 例えば、私たちはここに右周りに見ている - 170 00:09:58,180 --> 00:10:02,410 おっと、私は軸を少し台無しにしますが、ここでは、この範囲内で右を見ることができます 171 00:10:02,410 --> 00:10:05,730 南北戦争の周りにアメリカ版で大きなスパイクがあり 172 00:10:05,730 --> 00:10:08,340 はなく、このような大きな他の二つのスパイク、それは明らかだから 173 00:10:08,340 --> 00:10:10,880 アメリカ南北戦争は、その時点で何が起こっていた。 174 00:10:10,880 --> 00:10:13,890 >> 我々は、そこにいくつかのクールなものを見ることができます 175 00:10:13,890 --> 00:10:17,070 しかし、私たちが本当に気にすることは我々がこのデータを取得する方法です。 176 00:10:17,070 --> 00:10:21,320 私は少しでこのアプリでは、舞台裏に連れて行きます。 177 00:10:21,320 --> 00:10:24,540 巧妙なトリックでは、サイトおよび種類の作業しているかどうかを知りたいです 178 00:10:24,540 --> 00:10:27,430 舞台裏で何が起こっているのは、開発者ツールを開くことができます。 179 00:10:27,430 --> 00:10:30,200 私は、Chromeの開発者ツールを使用するつもりだし、それらを取得する 180 00:10:30,200 --> 00:10:35,160 あなたは、コントロール、シフト、J、およびJavaScriptコンソールに表示されますを行うことができます。 181 00:10:35,160 --> 00:10:37,420 ここではいくつかのタブがあります。 182 00:10:37,420 --> 00:10:39,680 彼らはすべての異なる状況下でかなり便利ですが、私は、ネットワークを気に 183 00:10:39,680 --> 00:10:44,150 タブには、現在、私は実際にその作業を取得するために更新する必要があります。 184 00:10:44,150 --> 00:10:50,180 あ、ごめん。 185 00:10:50,180 --> 00:10:52,320 これはランダムな例を与えるのを好む。 186 00:10:52,320 --> 00:10:54,700 さて、我々はその代わりに、この例を使用します。 187 00:10:54,700 --> 00:11:01,330 >> アイデアは、このAPIがここにありです 188 00:11:01,330 --> 00:11:05,330 そしてあなたは、APIが返しているかを正確に確認することができます。 189 00:11:05,330 --> 00:11:10,220 これにより、アプリケーションはその要求を送信したA​​PIから戻ってきているものです。 190 00:11:10,220 --> 00:11:13,680 私は少しでズームしましょう​​、 191 00:11:13,680 --> 00:11:18,340 そして我々は基本的にそれだけではJSONのキーと値のペアのシリーズです見ることができます。 192 00:11:18,340 --> 00:11:23,220 言い換えれば、我々は値をマッピングのここにこのハッシュマップを持っています。 193 00:11:23,220 --> 00:11:26,440 言い換えれば、それは値にマッピングする年だ。 194 00:11:26,440 --> 00:11:32,600 1765年には90回使用されているものは何でも私達は最初にのために検索された単語 195 00:11:32,600 --> 00:11:35,810 100万人のうち、私たちはこの結果を戻す取得している。 196 00:11:35,810 --> 00:11:40,280 我々はここで、この小さな結果のヘッダを持っているので、それは正確にはJSONではありません 197 00:11:40,280 --> 00:11:45,630 しかしここでは、このオブジェクト全体がちょうど巨大なJSONのブロブであることに注目してください。 198 00:11:45,630 --> 00:11:51,070 我々は、この全体の要素が含まれているここで配列を持っている 199 00:11:51,070 --> 00:11:55,590 そしてあなたは、全体の要素が終了することを見ることができますし、我々はもう一つの大きな要素を持っている 200 00:11:55,590 --> 00:11:59,430 それが終わりまでずっとダウンし、それはここで終了。 201 00:11:59,430 --> 00:12:02,200 我々は、その中の2つのオブジェクトを持つ非常に大きな配列を持っている 202 00:12:02,200 --> 00:12:04,630 し、それらのオブジェクトのそれぞれがハッシュマップです。 203 00:12:04,630 --> 00:12:07,340 あなたは、私たちがマッピングを持つハッシュマップの各々の内部に見ることができます 204 00:12:07,340 --> 00:12:12,700 このインデックスは0〜値と別のハッシュマップには、この値の値の、 205 00:12:12,700 --> 00:12:18,360 再びY軸の値にX軸の値をマッピングしている。 206 00:12:18,360 --> 00:12:20,970 >> あなたは、JSONは少し複雑ですが、全体的に、取得することができます参照してください。 207 00:12:20,970 --> 00:12:24,190 それは実際には非常に便利だし、それはと比較してアクセスすることは非常に簡単です 208 00:12:24,190 --> 00:12:27,390 表記の他のさまざまな形態。 209 00:12:27,390 --> 00:12:30,550 限り我々が実際に取得するためのAPIにデータを送信しているものとして、 210 00:12:30,550 --> 00:12:34,690 私は少しここでバックエンドに行くつもりです。 211 00:12:34,690 --> 00:12:39,850 これは、Webアプリケーションの相互作用のすべてを扱うのビッグJavaScriptファイルです 212 00:12:39,850 --> 00:12:44,810 それで我々はこの中で最も気にしないが、我々はそれについていくつか気にしない。 213 00:12:44,810 --> 00:12:47,410 たとえば、我々は、このbuildQuery機能を気に 214 00:12:47,410 --> 00:12:50,670 この関数のアイデアは基本的にそれがページの周囲に見ているし、 215 00:12:50,670 --> 00:12:53,750 言い換えれば、ユーザーが照会をしたいのかを考え出す 216 00:12:53,750 --> 00:12:57,090 彼らは彼らの入力検索用語を、したこれらのボックスをチェックして 217 00:12:57,090 --> 00:13:01,380 異なるY、彼らが選ばれたと、そういったことのすべてのことをしたX軸の値をチェックし、 218 00:13:01,380 --> 00:13:06,650 そしてそれは私がそれからAPIにオフ送ることができますこのクエリ値を吐き出すために起こっている。 219 00:13:06,650 --> 00:13:09,180 >> これは、複雑に見えますが、それはかなり複雑である 220 00:13:09,180 --> 00:13:18,090 私はインない事実、私はすでにこれをやっているつもりだ何、それは素晴らしいです - 221 00:13:18,090 --> 00:13:21,640 私は正確には、そのクエリの値を出力するためにコンソールを取得するつもりだということです 222 00:13:21,640 --> 00:13:28,110 それはAPIに送り出していること。 223 00:13:28,110 --> 00:13:30,870 それは右ここに実際にです。申し訳ありませんが、それは多くのものを出力します。 224 00:13:30,870 --> 00:13:33,690 しかし、これは右ここで、我々は気にこれが何を目的としている。 225 00:13:33,690 --> 00:13:35,300 これは、クエリオブジェクトです。 226 00:13:35,300 --> 00:13:40,670 言い換えれば、これは、WebアプリケーションがAPIに送信しているものを正確になり、 227 00:13:40,670 --> 00:13:45,730 ので、少し内部を見てみましょう、と我々は我々がここでいくつかの値を持って参照してください。 228 00:13:45,730 --> 00:13:48,710 我々は、万語あたりの出現である、我々はこのカウントの種類を持って参照してください。 229 00:13:48,710 --> 00:13:51,460 これは、私たちがこっちY軸に選択したものを正確になります。 230 00:13:51,460 --> 00:13:53,740 それはから来ているところです。 231 00:13:53,740 --> 00:13:58,010 我々は、いくつかの特定のデータベースがあることを意味し、データベースの値を持っている 232 00:13:58,010 --> 00:14:01,610 このデータはに住んでいる、我々は具体的に、そのデータにアクセスしたい 233 00:14:01,610 --> 00:14:04,950 として、例えば、赤ちゃんの名前のデータではなく。 234 00:14:04,950 --> 00:14:08,320 その後、我々は、このグループの値を持つ 235 00:14:08,320 --> 00:14:12,090 とは対照的に、年間で我々は、検索したいことを言っている 236 00:14:12,090 --> 00:14:16,030 他のX軸の値。 237 00:14:16,030 --> 00:14:19,040 その後、我々はいくつかのAPIは、複数のことを実行するメソッドを持っています。 238 00:14:19,040 --> 00:14:22,360 言い換えれば、このAPIはまた、他の種類のデータを返すことができます 239 00:14:22,360 --> 00:14:27,740 しかし、この場合には、我々は、Y軸の値にX軸の値のそのマッピングをしたい。 240 00:14:27,740 --> 00:14:30,730 それはだがやるように指示されているもの、 241 00:14:30,730 --> 00:14:35,020 そして我々は2つ​​の値が含まれているこの検索制限の配列を持っています。 242 00:14:35,020 --> 00:14:40,720 最初のものは、すべての値である、我々はここで見ているものです 243 00:14:40,720 --> 00:14:43,020 上部にその最初の小さな箱の中に含まれていました。 244 00:14:43,020 --> 00:14:47,570 >> 言い換えれば、私たちは言葉の戦いを探したい、と我々はそれをフィルタリングする 245 00:14:47,570 --> 00:14:51,920 アメリカ文学の中で英語のテキスト。 246 00:14:51,920 --> 00:14:54,590 我々は、米国でこの国を持っています。 247 00:14:54,590 --> 00:14:59,130 私たちは英語の言語を持っているので、我々は、これらのさまざまな部品がすべてそろっている 248 00:14:59,130 --> 00:15:02,690 それはすべて私たちが望むまさにAPIを語っている。 249 00:15:02,690 --> 00:15:04,940 我々は、我々は戻って取得したデータがまだあるかわからない 250 00:15:04,940 --> 00:15:10,970 しかし、我々はデータが一定の形をとるのが分かっている。 251 00:15:10,970 --> 00:15:13,650 この例では、複雑な側に種のもので、 252 00:15:13,650 --> 00:15:16,180 そしてあなたは、必ずしもAPIにこの複合体を使用していないであろう、 253 00:15:16,180 --> 00:15:20,600 しかし、これはあなたのAPIで何ができるかの範囲とパワーを示すことです。 254 00:15:20,600 --> 00:15:24,980 言い換えれば、我々は基本的に入力ボックスを持っている比較的単純なクエリのシステムを使用して 255 00:15:24,980 --> 00:15:29,490 別の場所でいくつかの他のセレクタと。 256 00:15:29,490 --> 00:15:32,010 >> 私はここに戻ってズームアウトしてみましょう。 257 00:15:32,010 --> 00:15:37,720 我々は、いくつかの異なるメタデータの選択と入力ボックスを持っている 258 00:15:37,720 --> 00:15:40,610 そして我々は、Y軸とX軸の選択肢を持っています。 259 00:15:40,610 --> 00:15:42,830 私たちは、実際に、その多くのフィールドを持っていない 260 00:15:42,830 --> 00:15:46,210 我々は、我々は、APIのいくつかの並べ替えを照会することができるしている非常に簡単に見ることができます 261 00:15:46,210 --> 00:15:48,510 そして、戻ってデータを取得し、このチャートに入れて 262 00:15:48,510 --> 00:15:52,080 これは、有用な方法でそれを表示しようとしている。 263 00:15:52,080 --> 00:15:54,970 皆さんに馴染みのビットかもしれないもう一つの例を見て 264 00:15:54,970 --> 00:15:56,510 我々はFacebookに回すつもりです。 265 00:15:56,510 --> 00:15:59,440 FacebookのAPIはFacebookグラフと呼ばれ、 266 00:15:59,440 --> 00:16:04,390 そして基本的にはそれが何を意味するかは、Facebookがこの巨大なデータベースとしての地位を見ている 267 00:16:04,390 --> 00:16:08,000 すべてお互いに一定の関係を持っている様々な部分の多くの。 268 00:16:08,000 --> 00:16:11,070 言い換えれば、私はFacebook上のユーザので、私はプロファイルを持っている 269 00:16:11,070 --> 00:16:14,310 そして、私はまた、特定の友人を持って、それらの各々は、プロファイルを持っている 270 00:16:14,310 --> 00:16:17,580 と私の友人のそれぞれが、その上に別のコメントがある壁があり、 271 00:16:17,580 --> 00:16:20,800 そしてそれらのコメントのそれぞれが同類とそういったことのすべてを持っています。 272 00:16:20,800 --> 00:16:23,100 >> Facebookに異なる部分がたくさんあり​​ます。 273 00:16:23,100 --> 00:16:26,670 、それは非常に複雑なAPIだし、あなたがそれを行うことができますトンはあり 274 00:16:26,670 --> 00:16:28,450 それは使用するために、実際にはかなり簡単です。 275 00:16:28,450 --> 00:16:33,680 私は、graph.facebook.com / billyjanitschに行くことによってアウトを開始するつもりだ 276 00:16:33,680 --> 00:16:38,430 これは私の一意のアカウント名、アカウント名はどちらかになるでしょう 277 00:16:38,430 --> 00:16:43,710 単語のいくつかの種類が、あなたはそれを選択した場合、またはそれだけの数字の文字列であるかもしれません。 278 00:16:43,710 --> 00:16:46,360 我々は戻って取得するのは非常に基本的な情報です。 279 00:16:46,360 --> 00:16:50,460 我々は、私はビリー、Janitschある姓、ある最初の名前を持っていることがわかります。 280 00:16:50,460 --> 00:16:53,370 私が持っているユニークなFacebookのIDがあります。 281 00:16:53,370 --> 00:16:57,920 あなたは、私が男性だと、私は私の言語設定となっていることがわかります 282 00:16:57,920 --> 00:17:01,290 イギリス英語へ。 283 00:17:01,290 --> 00:17:03,490 言い換えれば、我々はここに非常に基本的な情報が表示されている。 284 00:17:03,490 --> 00:17:08,670 それはあまりにも多くはないが、それは私達に何があるかのアイデアを与えるん。 285 00:17:08,670 --> 00:17:10,849 >> 我々は、例えば、デビッド·マランに同じことを行うことができます。 286 00:17:10,849 --> 00:17:13,599 私は彼の名前がdmalanだと思います。 287 00:17:13,599 --> 00:17:16,369 我々はデビッドマランが固有のIDを持って参照してください。 288 00:17:16,369 --> 00:17:19,300 彼は、姓、名、ミドルネーム、姓を持っています。 289 00:17:19,300 --> 00:17:24,210 私たちはまた、彼が男性だと、アメリカ英語に設定され、彼の言語を持っていることを参照してください。 290 00:17:24,210 --> 00:17:26,869 言い換えれば、我々はここに非常に基本的な情報が表示されている。 291 00:17:26,869 --> 00:17:28,860 我々は何か他のものをチェックアウトしようとしても、何が起こるか? 292 00:17:28,860 --> 00:17:33,060 Let 'sは、私はデビッド·マランはFacebookを利用して言っていたのかに興味があると言う。 293 00:17:33,060 --> 00:17:36,860 私は/同類を行うことができます。今、私たちは問題に実行しようとしました。 294 00:17:36,860 --> 00:17:39,280 我々は、アクセストークンを言うエラーのいくつかの並べ替えを持っている 295 00:17:39,280 --> 00:17:41,660 このリソースを要求する必要があります。 296 00:17:41,660 --> 00:17:44,730 あなたが考えてみればそれは奇妙だろうので、しかし、それは実際には理にかなっている 297 00:17:44,730 --> 00:17:47,830 あなたは、Facebookのデータベースのすべての単一の部分にアクセスすることができれば 298 00:17:47,830 --> 00:17:50,170 ただシンプルなA​​PIのいくつかの並べ替えから、右か? 299 00:17:50,170 --> 00:17:56,040 言い換えれば、おそらくあなたの情報は、それを望んでいる誰もがアクセスすることはできません。 300 00:17:56,040 --> 00:17:58,330 >> このエラーは、それが何を意味するかを正確になります。 301 00:17:58,330 --> 00:18:03,630 一部のAPIは、そのデータにアクセスするために、特定の権限が必要です。 302 00:18:03,630 --> 00:18:06,940 Facebookのような、さらにより高度なAPI、 303 00:18:06,940 --> 00:18:09,840 特定の権限が特定の物事を行うことが必要になります。 304 00:18:09,840 --> 00:18:12,650 私はデビッドマランについては、この基本的な情報を見ることができます。 305 00:18:12,650 --> 00:18:15,950 私は、彼が男性だということと、彼が米国に住んでいることがわかります 306 00:18:15,950 --> 00:18:19,270 しかし、私は本当にそれを越えて何かを見ることができません。 307 00:18:19,270 --> 00:18:23,050 今のところこれを回避するために、Facebookはこの素敵なツールを持っています 308 00:18:23,050 --> 00:18:27,690 これはグラフのAPIエクスプローラで、というアイデアは、あなたが並べ替えることができますです 309 00:18:27,690 --> 00:18:31,880 自分のアカウントに基づいて、自分のための権限を設定する 310 00:18:31,880 --> 00:18:35,680 その後具体的にあなたのアカウントが表示できることを確認します。 311 00:18:35,680 --> 00:18:45,120 たとえば、私がしなければgraph.facebook.com/billyjanitsch/likes- 312 00:18:45,120 --> 00:18:53,510 おっと、私はここに私のトークンを再検証する必要がありますね。 313 00:18:53,510 --> 00:18:55,950 オーケー。 314 00:18:55,950 --> 00:19:01,740 私は、再び偉大なことをしたら、今、私は戻って、このオブジェクトを取得することを参照してください。 315 00:19:01,740 --> 00:19:06,300 これは私がカテゴリゲームとおもちゃであるプールの麺が好きだという。 316 00:19:06,300 --> 00:19:08,620 私はカテゴリ動物であるセイウチが好き。 317 00:19:08,620 --> 00:19:10,180 これらは、私の実際のFacebookの同類である。 318 00:19:10,180 --> 00:19:13,280 彼らは、恥ずかしいの一種だ。 319 00:19:13,280 --> 00:19:16,090 >> しかし、我々は、このデータはすべてJSONで返されていることがわかります。 320 00:19:16,090 --> 00:19:18,160 それはかなり読みやすいです。 321 00:19:18,160 --> 00:19:20,970 言い換えれば、我々は、配列のいくつかの並べ替えに、このデータのマッピングを持っている 322 00:19:20,970 --> 00:19:25,220 この配列の各要素は、マップHashMapです 323 00:19:25,220 --> 00:19:28,530 などのように、カテゴリの名前。 324 00:19:28,530 --> 00:19:31,240 のような各々が固有のIDを持っています。 325 00:19:31,240 --> 00:19:34,510 我々が得ることができるデータの異なるあらゆる種類のものがありますが、 326 00:19:34,510 --> 00:19:37,980 そしてあなたはCS50最終的なプロジェクトのためにFacebookのAPIを使うことに興味を持っている場合 327 00:19:37,980 --> 00:19:40,720 か何かのためにそれは実際には非常になんとかだように。 328 00:19:40,720 --> 00:19:44,260 基本的には、認証の事を回避する方法Facebookは 329 00:19:44,260 --> 00:19:48,030 のOAuthと呼ばれるシステム、またはオープン認証を使用しています 330 00:19:48,030 --> 00:19:52,870 と私はOAuthまたは異なるタイプのため、今ではそれに入るためにしたくない 331 00:19:52,870 --> 00:19:56,060 認証のため、別のAPIの間の多くの変化する傾向がある 332 00:19:56,060 --> 00:19:58,320 ので、私は、一人一人の上に行くに長い時間を過ごすことができました 333 00:19:58,320 --> 00:20:01,170 しかし、彼らは実際にはかなり自明だ。 334 00:20:01,170 --> 00:20:04,050 >> もしGoogleのFacebookのAPI場合、それは非常に読みやすいです。 335 00:20:04,050 --> 00:20:06,670 全体の仕様ではあります。 336 00:20:06,670 --> 00:20:10,210 たとえば、これは、FacebookのAPIのためのドキュメントです 337 00:20:10,210 --> 00:20:14,170 そしてあなたは、私がユーザーページ上だ見ることができますので、私はすべての物事のさまざまな種類について学ぶことができます 338 00:20:14,170 --> 00:20:17,170 な限りのデータを取得可能であることを 339 00:20:17,170 --> 00:20:21,550 私はそれらにアクセスするために必要であること、また、異なるパーミッション。 340 00:20:21,550 --> 00:20:25,470 我々が見たように、我々は、名前や性別にアクセスするためのアクセス許可を必要としない 341 00:20:25,470 --> 00:20:29,380 しかし、それを越えて、我々はほとんどの事の権限が必要なのでしょうか。 342 00:20:29,380 --> 00:20:33,040 このページには、というか、このウェブサイトには、どのように取得する方法を教えてくれます 343 00:20:33,040 --> 00:20:35,640 自分自身を認証できるようにトークン。 344 00:20:35,640 --> 00:20:39,290 ほとんどの認証システムでは、トークンのいくつかの並べ替えを使用 345 00:20:39,290 --> 00:20:42,880 このユニークな値で、本当に長くてランダムな文字列ですが、どこで取得する 346 00:20:42,880 --> 00:20:46,240 その方法は、彼らはあなたがあなたと一緒に作っていることを要求に関連付けることができます。 347 00:20:46,240 --> 00:20:50,560 言い換えれば、彼らはあなたが彼らのデータを使用して不審な何かをやっていないことを知っています。 348 00:20:50,560 --> 00:20:53,340 彼らはあなたが取得しているかを正確に知っている。 349 00:20:53,340 --> 00:20:56,180 彼らはまた、あなたがその情報を表示する権限を持っていることを知っています。 350 00:20:56,180 --> 00:20:59,110 >> あなたは、Facebookアプリを作ったし、あなたのアプリケーションは、特定のユーザーを持っている場合、 351 00:20:59,110 --> 00:21:03,380 と、それらのユーザーは、アプリが自分のプロファイルの特定の部分にアクセスすることを許可した 352 00:21:03,380 --> 00:21:07,790 次にどんなAPIキーまたはそのアプリが使用しているトークン 353 00:21:07,790 --> 00:21:11,090 それらのユーザーのデータにアクセスできるようになります。 354 00:21:11,090 --> 00:21:13,780 、これは複雑に聞こえるかもしれないが、それはあまりにも悪くはない 355 00:21:13,780 --> 00:21:16,810 そしてあなたがFacebookを使用したい場合、私は非常にすることをお勧めする 356 00:21:16,810 --> 00:21:18,990 そのAPIで遊んで検討してください。 357 00:21:18,990 --> 00:21:21,610 それは非常にクールだし、あなたはそれでたくさんのいろいろなものを行うことができます。 358 00:21:21,610 --> 00:21:24,880 ユーザはあなたにこれらの権限を与えられている場合、あなたもAPIに戻ることができます 359 00:21:24,880 --> 00:21:28,820 そして、私は実際にこのユーザーのウォールに投稿したい、または私は彼らが写真を投稿したいと言う 360 00:21:28,820 --> 00:21:32,390 そしてあなたのニュースフィードに理由ですあなたは時々それらの迷惑なものを買ってあげる 361 00:21:32,390 --> 00:21:37,840 あなたの友人はそのような変なサイトか何かのいくつかの並べ替えにこのビデオを見てきたと言いました。 362 00:21:37,840 --> 00:21:43,120 そのアプリは、その人のウォールに投稿するためにアクセス権が付与されているからだ。 363 00:21:43,120 --> 00:21:48,350 アイデアは、全体的な、FacebookのAPIは非常に複雑なだけでなく、本当に便利です。 364 00:21:48,350 --> 00:21:53,220 間違いなくあなたは、まだ最終的なプロジェクトを探しているなら、チェックアウトする価値がある。 365 00:21:53,220 --> 00:21:57,930 >> 私は上に行くつもりしているAPIのもう一つのスイートはCS50のAPIです。 366 00:21:57,930 --> 00:22:00,070 私はここにズームしましょう​​。 367 00:22:00,070 --> 00:22:03,390 CS50は、実際のAPIの全シリーズをまとめました 368 00:22:03,390 --> 00:22:07,080 あなたは、最終的なプロジェクトのために、またはちょうどあなたが作っている何のために使用することができます。 369 00:22:07,080 --> 00:22:12,830 そして、彼らは主にハーバード大学関連のだ、と彼らはHUDはメニューによって異なります 370 00:22:12,830 --> 00:22:17,780 例えば、あなたがリストにアクセスできるようになるこのハーバード·イベントAPIに 371 00:22:17,780 --> 00:22:21,290 異なるハーバード大学で起こっているイベントと、そういったこと。 372 00:22:21,290 --> 00:22:24,510 そして私たちは、これらのいずれかをクリックして、それのための仕様を得ることができます 373 00:22:24,510 --> 00:22:28,090 あなたは、任意のAPIのために見つけることができるでしょう、とアイデアがある 374 00:22:28,090 --> 00:22:33,920 それはAPIから要求する内容と、それを要求する方法を具体的に、あなたが知ることができます。 375 00:22:33,920 --> 00:22:37,370 言い換えれば、私は明日起こっているすべてのイベントをしたい場合 376 00:22:37,370 --> 00:22:42,550 それから私は、明らかにそれのためには、一定の形式で私がしたいことをその日付を与えるために持っている 377 00:22:42,550 --> 00:22:46,030 AとB、それは私に戻って与えるために起こっているのかを正確に教えてくれるでしょう。 378 00:22:46,030 --> 00:22:48,590 それは、私はあなたにこのJSONオブジェクトを返すつもりだと言うだろう 379 00:22:48,590 --> 00:22:50,960 またはあなたが見ることができるように、様々なフォーマットがあります。 380 00:22:50,960 --> 00:22:54,050 >> また、たとえば、CSVとしてデータを返すことができます。 381 00:22:54,050 --> 00:22:57,620 しかし、あなたはそれを取り戻すときに、そのデータが見えるように起こっているか正確に知っている 382 00:22:57,620 --> 00:23:00,610 ので、あなたはそれで特定の物事を行うことを期待することができます。 383 00:23:00,610 --> 00:23:07,240 我々は、APIを照会したい場合に、下にスクロールして見ることは、たとえばことができます 384 00:23:07,240 --> 00:23:11,500 カレンダーを得るために、我々は、この特定のURLを使用することができます 385 00:23:11,500 --> 00:23:16,480 それに我々は正確に必要なデータになるだろうしている特定のパラメータを与える。 386 00:23:16,480 --> 00:23:19,540 と同様に、我々は、特定の形式でデータを戻したい場合は、 387 00:23:19,540 --> 00:23:23,790 次に我々は、CSV形式でデータを出力するためにそれを求めることができ 388 00:23:23,790 --> 00:23:27,700 そしてそれは我々がAPIに渡していることだけで、別のパラメーターです。 389 00:23:27,700 --> 00:23:29,210 そこを行うためのクールなものがたくさん。 390 00:23:29,210 --> 00:23:32,550 私は間違いなくCS50 APIを調べることをお勧めします。 391 00:23:32,550 --> 00:23:36,000 >> 私は少しのために特にこのハーバードフードのAPIを見てみたいと思います。 392 00:23:36,000 --> 00:23:39,870 私が実際に設計したことの一つは、このハーバードNOMSサイトです 393 00:23:39,870 --> 00:23:44,930 これは、その日のためにHUDはメニューを取得するCS50フードAPIを使用しています。 394 00:23:44,930 --> 00:23:50,400 と拡張子の学校の人々のために、HUDははハーバード大学のダイニングサービスです。 395 00:23:50,400 --> 00:23:55,130 何を得ることは我々がランチを参照してくださいので、毎日の食事がすべて含まれていますこのページである。 396 00:23:55,130 --> 00:23:58,130 我々はいくつかの異なったカテゴリがあります。我々は、Beanと全粒粉の駅を持っています。 397 00:23:58,130 --> 00:24:00,340 私達は玄米ステーションが備わっています。 398 00:24:00,340 --> 00:24:03,360 我々は、これらのいくつかの食品を持っているブランチに見ることができます。 399 00:24:03,360 --> 00:24:07,030 我々はそれらをクリックするなら、私たちは、栄養情報を取得します。 400 00:24:07,030 --> 00:24:12,240 あなたは不思議に思っていたケースで​​、これは、グレープフルーツの栄養情報です参照してください。 401 00:24:12,240 --> 00:24:14,870 それで再び、我々はここで少しバックエンドを覗きしようとしている 402 00:24:14,870 --> 00:24:18,530 そしてこれが、このデータを取得するためにやっているかを正確に確認。 403 00:24:18,530 --> 00:24:21,710 そしてそれは実際にはまったく非常に複雑ではないことが判明した。 404 00:24:21,710 --> 00:24:28,720 このファイルには、少し厄介に見えるが、これはWebサイト全体を処理していることを心に留めておく 405 00:24:28,720 --> 00:24:34,130 私は下にスクロールした場合、我々は、この変更データ関数を参照してください。 406 00:24:34,130 --> 00:24:36,630 >> 今、ちょうど明確にすること、これは、CoffeeScriptはで書かれている 407 00:24:36,630 --> 00:24:39,570 あなたはおそらく前に見ていない言語はどれですか。 408 00:24:39,570 --> 00:24:44,810 しかし、それはかなり読みやすいので、擬似コードであるかのように私はそれを見ていきます。 409 00:24:44,810 --> 00:24:49,080 変更日は、この日付の値を取り込むために起こっている関数です。 410 00:24:49,080 --> 00:24:51,740 そしてそれはまた、我々はできるだけ気にしないものは、最初に必要となるだろう。 411 00:24:51,740 --> 00:24:54,110 しかし、重要なことは、それはこの日付を持っているということです 412 00:24:54,110 --> 00:25:00,080 そしてその日は、私たちが食品のすべてを要求したい日です。 413 00:25:00,080 --> 00:25:04,030 そしてあなたは、私たちがここで構文の少しを持って参照してください。 414 00:25:04,030 --> 00:25:09,000 これは、基本的に読める形式にその日付を解析している。 415 00:25:09,000 --> 00:25:11,920 言い換えれば、APIは、特定の形式で日付を必要とします。 416 00:25:11,920 --> 00:25:17,390 あなただけの2012年11月16日ADを言うことはできません。 417 00:25:17,390 --> 00:25:20,320 それはそれで何をすべきかを知ることができません。これは、特定の形式で日付を望んでいる。 418 00:25:20,320 --> 00:25:23,230 我々がここでやっていることは、まさにその形式にそれを与えている 419 00:25:23,230 --> 00:25:26,520 これは、年の値、次にハイフン、月の値です 420 00:25:26,520 --> 00:25:29,420 別のハイフンと日付値。 421 00:25:29,420 --> 00:25:34,910 そして、我々はまた、我々はデータをJSON形式で出力することがしたいと言う。 422 00:25:34,910 --> 00:25:37,560 >> 今、私たちは、このAJAXリクエストを作っている、と私は前に述べたように、 423 00:25:37,560 --> 00:25:41,680 jQueryは、すべてを行う必要が指定されているこの超便利なAJAX機能を持っています 424 00:25:41,680 --> 00:25:45,780 ここにいくつかのパラメータ、そして、それは戻って正確に何をしたいあなたを与えるだろう。 425 00:25:45,780 --> 00:25:50,490 我々は、我々はそれに行きたいURLがこのCS50フードAPIであることを伝えている 426 00:25:50,490 --> 00:25:52,270 その我々が仕様から得た。 427 00:25:52,270 --> 00:25:56,730 我々は、JSONでデータを望んでいると言うこと 428 00:25:56,730 --> 00:25:59,490 我々はそれを我々がここまで定義して、このデータを与えるつもりだ。 429 00:25:59,490 --> 00:26:02,670 これは、我々のための食糧項目を希望する日です。 430 00:26:02,670 --> 00:26:07,790 そして、我々がしなければならないすべては、成功した機能のいくつかの並べ替えを定義されている 431 00:26:07,790 --> 00:26:11,980 これは、APIがそのデータを返すときに何が起こるか基本的にです。 432 00:26:11,980 --> 00:26:15,490 言い換えれば、私たちは、私たちが望むことはすべてのパラメータをパッケージ化しました 433 00:26:15,490 --> 00:26:20,530 このケースでは、我々はそれとJSONで我々はそれを望んでいるという事実を望んでいる日である、 434 00:26:20,530 --> 00:26:23,840 私たちは、大丈夫なので、今のAPIが言っている、APIに退場 435 00:26:23,840 --> 00:26:26,350 ここにあなたのデータは、私があなたのためにそれを戻ってきました。 436 00:26:26,350 --> 00:26:29,930 私たちは、与えられたことを意味成功の機能を持って、そのAPI 437 00:26:29,930 --> 00:26:32,230 正常にいくつかのデータを返しますが、我々はそれを使って何を行うのですか? 438 00:26:32,230 --> 00:26:35,980 >> そして、それは我々が行うすべては、この更新プログラムメニュー機能を呼び出すことが判明する 439 00:26:35,980 --> 00:26:42,680 APIが戻ってきたものは何でも、私たちはそれを検索することができます 440 00:26:42,680 --> 00:26:47,970 そして我々がやっているすべてはここに新しい構文の束を使用していることがわかり 441 00:26:47,970 --> 00:26:52,220 HTMLを更新し、この新しいデータを挿入することができます。 442 00:26:52,220 --> 00:26:56,580 これは何ができて、我々はどちらの側にもこれらの矢印を持っているであり、我々は、クリックすることができます 443 00:26:56,580 --> 00:27:01,060 そして、今、私たちは次の日のデータを見ていると、再び次の日のために、 444 00:27:01,060 --> 00:27:04,820 それは、その日付の値を更新するとAPIを照会するのは、それぞれの時間 445 00:27:04,820 --> 00:27:07,510 いくつかのデータを取り戻すとサイトにそれを入れて。 446 00:27:07,510 --> 00:27:10,590 繰り返しになりますが、超、超便利を見ることができます。 447 00:27:10,590 --> 00:27:14,410 このアプリは、一緒にハックする私に数時間かかった 448 00:27:14,410 --> 00:27:20,140 と私は明らかに、少しより多くの経験を持っていますが、あなたのCS50最終的なプロジェクト 449 00:27:20,140 --> 00:27:22,870 非常にこのようなものを見ることができます。 450 00:27:22,870 --> 00:27:29,540 >> APIは、彼らが取ることを努力の量を超強力です。 451 00:27:29,540 --> 00:27:32,800 私は上に行くつもりです最後の事は広く、さらにいくつかのAPIです。 452 00:27:32,800 --> 00:27:35,480 私は、限り、彼らが具体的に何をすべきか、それらに限り取得することはありません 453 00:27:35,480 --> 00:27:38,740 しかし、私はあなたにそこにあるもののアイデアを与えるだろう。 454 00:27:38,740 --> 00:27:42,700 2本当に有用なもの、あなたはデータ解析または可視化に興味があるなら 455 00:27:42,700 --> 00:27:45,960 またはそのような何かは、Freebaseは、ウィキペディアです。 456 00:27:45,960 --> 00:27:49,800 ウィキペディア - たぶん、あなたはすべてのノウハウと、無料オンライン百科事典、 457 00:27:49,800 --> 00:27:53,230 そしてそれは実際に、例えば、あなたがしたいのであれば、APIを持ってい 458 00:27:53,230 --> 00:27:56,250 テキストやタコの記事のすべてを取得 459 00:27:56,250 --> 00:27:58,030 あなたは非常に簡単にそれを行うことができます。 460 00:27:58,030 --> 00:28:02,300 ただ、私はこのように、返されたデータをしたいのですが、ウィキペディア、ちょっとAPIを言う 461 00:28:02,300 --> 00:28:07,010 そして、私はこの形式でそれをしたいのです、私が好きな記事はタコです 462 00:28:07,010 --> 00:28:09,820 非常に迅速にその情報をあなたにお返しします。 463 00:28:09,820 --> 00:28:12,230 あなたのサイトのいくつかの並べ替えをしたい場合、これは本当に便利です 464 00:28:12,230 --> 00:28:16,200 それはウィキペディアまたはそのような何かのためのより良いビューアです。 465 00:28:16,200 --> 00:28:21,350 >> それは限りAPIとしては少し難しいですが、Freebaseは、類似したのようなものです。 466 00:28:21,350 --> 00:28:24,390 Freebaseはそれがオンライン百科事典だという点で、Wikipediaのようなものです 467 00:28:24,390 --> 00:28:29,050 これは、たくさんとさまざまなトピックのすべてのソートについての異なる大量のデータを含む 468 00:28:29,050 --> 00:28:33,150 しかし、それはWikipediaとは若干異なるリレーショナル·データベースに格納されている。 469 00:28:33,150 --> 00:28:36,410 ウィキペディアは、他の記事にリンクされ、その記事と記事が掲載されています 470 00:28:36,410 --> 00:28:38,860 ほとんどの部分は、場合は、タコのためのデータが欲しい 471 00:28:38,860 --> 00:28:41,990 あなたはタコの記事に移動し、そのデータを取得し、テキストの束を持っている 472 00:28:41,990 --> 00:28:43,830 タコについて、素晴らしいことだそう。 473 00:28:43,830 --> 00:28:46,870 Freebaseはその中で少し複雑な方法で動作します 474 00:28:46,870 --> 00:28:48,930 すべてのものがお互いに関連しています。 475 00:28:48,930 --> 00:28:52,620 言い換えれば、我々はタコを探している 476 00:28:52,620 --> 00:28:54,940 それはそれに関連付けられているカテゴリの束を持っています。 477 00:28:54,940 --> 00:28:57,920 >> 例えば、それは動物だ、それは、水中に住んでいる 478 00:28:57,920 --> 00:28:59,710 それは一定の体温を持っています。 479 00:28:59,710 --> 00:29:01,210 知りません。 480 00:29:01,210 --> 00:29:04,230 これらのカテゴリのすべては、あなたが行くことができ、他の場所へのリンクです 481 00:29:04,230 --> 00:29:06,640 同じカテゴリで物事を見ることができます。 482 00:29:06,640 --> 00:29:13,450 言い換えれば、タコ·データ·セットは、すべての動物のためのデータセットへのリンクを含んでいるでしょう 483 00:29:13,450 --> 00:29:16,790 そしてそれは私が本当に素早くデータベース内を移動できますでしょう。 484 00:29:16,790 --> 00:29:21,740 あなたが比較のようなものをやっている場合、これは非常に便利です。 485 00:29:21,740 --> 00:29:24,490 言い換えれば、ある事を考えると、あなたが見たい 486 00:29:24,490 --> 00:29:27,890 ほかに何か、それはに関連だと、それに関連するではありません他に何を参照してください。 487 00:29:27,890 --> 00:29:30,700 そういったこと。それはいくつかの方法において有用であり得る。 488 00:29:30,700 --> 00:29:34,250 あなたの挑戦の詳細を探しているといくつかのより複雑なことを行うことができるようにする場合 489 00:29:34,250 --> 00:29:38,740 私はFreebaseのAPIを見てみることを検討する。 490 00:29:38,740 --> 00:29:44,670 しかし、大部分は、Wikipediaは情報を取得する限り行くことは非常に簡単な場所です。 491 00:29:44,670 --> 00:29:48,340 私が見ていきますことを別の場所はLast.fmである、と私は実際にサイトに行くつもりです 492 00:29:48,340 --> 00:29:53,800 場合には一部の人は慣れていないですが、Last.fmは基本的に音楽である 493 00:29:53,800 --> 00:29:57,220 味と勧告のウェブサイト。 494 00:29:57,220 --> 00:29:59,000 あなたがアカウントを作ることができます。 495 00:29:59,000 --> 00:30:04,250 あなたの音楽プレーヤーからのアップロード、音楽を始めることができます 496 00:30:04,250 --> 00:30:08,020 ウェブサイトに、基本的にそれはあなたの音楽推薦を与え始めます 497 00:30:08,020 --> 00:30:10,030 あなたは耳を傾けるものに基づいて。 498 00:30:10,030 --> 00:30:14,270 >> たとえば、あなたのプロフィールページ - これは地雷に行けば 499 00:30:14,270 --> 00:30:18,180 あなたが最近聴いている曲のリストを持って見ることができます。 500 00:30:18,180 --> 00:30:22,550 あなたは、全体の好きなアーティスト、そういったことのすべてを見ることができます 501 00:30:22,550 --> 00:30:25,280 そして再び、Last.fmの後ろの大きなAPIは、そこ 502 00:30:25,280 --> 00:30:29,360  、あなたがたくさんの、本当にクールなものの多くを行うために使用することができます。 503 00:30:29,360 --> 00:30:38,870 たとえば、私は、このLast.fm ToolsのWebサイトを持っている友人のページに行きます。 504 00:30:38,870 --> 00:30:42,380 これは、実際にLast.fm APIの上に構築された別のプラットフォームです 505 00:30:42,380 --> 00:30:45,420 それはかなり興味深い多くのことを行います。 506 00:30:45,420 --> 00:30:50,260 私は、例えば、私のユーザー名でログインした場合は、 507 00:30:50,260 --> 00:30:53,110 私は、例えば、タグクラウドを生成するためにそれを求めることができ 508 00:30:53,110 --> 00:30:56,480 と何になるだろうの画像を私にお返しです 509 00:30:56,480 --> 00:30:59,850 すべての様々なジャンルと私が聞きたいこと、そういったこと。 510 00:30:59,850 --> 00:31:01,410 それはどのようにこれをやっている? 511 00:31:01,410 --> 00:31:05,670 非常に基本的にはここで、このユーザーはLast.fmのAPIに言っている。 512 00:31:05,670 --> 00:31:10,710 私は、彼らが今までに聞いたことをすべての曲のジャンルを知りたいのですが、 513 00:31:10,710 --> 00:31:15,130 、あなたはLast.fm APIに非常に単純なAJAX呼び出しを行うことにより、それを行うことができる。 514 00:31:15,130 --> 00:31:18,990 あなたは大きなリストが返されます、そして、明らかにいくつか他のものが行われている 515 00:31:18,990 --> 00:31:22,280 ワードクラウドにそれを回すために、しかし、あなたは、全体的な見ることができます 516 00:31:22,280 --> 00:31:25,850 それはアクセスすることは非常に簡単で、非常に使いやすいです。 517 00:31:25,850 --> 00:31:30,750 物事の数のために本当にいい。 518 00:31:30,750 --> 00:31:35,940 >> 私は全体的に言うよに関するすべてだと思う。 519 00:31:35,940 --> 00:31:39,040 私は一般的にAPIについて述べておきます最後に一つということです 520 00:31:39,040 --> 00:31:41,840 あなたは時々、レート制限と呼ばれるものに実行されます 521 00:31:41,840 --> 00:31:44,940 とレート制限の考え方は、APIを乱用したくないです。 522 00:31:44,940 --> 00:31:48,130 言い換えれば、それはこれらのウェブサイトの多くのAPIを持っていることは本当にうれしいです 523 00:31:48,130 --> 00:31:51,070 あなたは、に行くと無料で使用することができます。 524 00:31:51,070 --> 00:31:54,460 ただし、一日あたりの要求数百万あるいは何十億をとっているなら、 525 00:31:54,460 --> 00:31:57,610 例えば、あなたは無限に問い合わせるの無限ループに陥っている場合 526 00:31:57,610 --> 00:32:00,680 いくつかのAPIの一種と膨大な量のデータを取り戻す、 527 00:32:00,680 --> 00:32:04,570 明らかにそれは良いではない、このレートは機能を制限しているAPIのたくさんやるが何であるかそう 528 00:32:04,570 --> 00:32:09,970 それは、あなただけのIPアドレス、またはそのような何か1日あたり1,000件の要求を行うことができると言います。 529 00:32:09,970 --> 00:32:12,540 そして、あなたは多くのテストと、そういったことをやっている場合、 530 00:32:12,540 --> 00:32:14,890 あなたは時々、その中に実行することになるでしょうし、突然それはあなたを遮断する 531 00:32:14,890 --> 00:32:18,280 とノーと言う、私はあなたにそれ以上のデータを与えていない。 532 00:32:18,280 --> 00:32:20,000 >> あなたは何をしたいのは、ルールで遊ばです。 533 00:32:20,000 --> 00:32:22,950 あなたは慎重にAPI仕様をお読みになることを確認したい。 534 00:32:22,950 --> 00:32:26,330 それはあなたのようなそれに接続されている一定のルールを持っている場合、一日あたりのX照会を行うことができます 535 00:32:26,330 --> 00:32:30,000 またはあなただけのデータベースの一部を特定の回数にアクセスすることができます 536 00:32:30,000 --> 00:32:32,900 またはあなたがそれに固執確認したいそのような何か。 537 00:32:32,900 --> 00:32:38,360 限り、あなたは、それらのルールの中で遊ぶとは、おそらくAPIを使用して、本当に素敵な時間があるでしょう。 538 00:32:38,360 --> 00:32:42,030 あなたの全体の持ち帰りは、APIですが、本当に便利です。 539 00:32:42,030 --> 00:32:45,610 >> そこに、ほぼすべての大手ウェブサービスのAPIがあります。 540 00:32:45,610 --> 00:32:50,700 Googleのツールスイートは、Googleマップ、Google Earth、のほとんどあらゆる部分 541 00:32:50,700 --> 00:32:54,390 Gmail、Googleカレンダー、それらの事のすべては、APIを持っています。 542 00:32:54,390 --> 00:32:58,280 あなたには、サーバーからデータを取得し、サーバーにデータを送信するには、両方のそれらを使用することができます。 543 00:32:58,280 --> 00:33:00,870 あなたはカレンダーアプリを作りたい場合は、他の言葉で、更新することができます 544 00:33:00,870 --> 00:33:04,190 誰かのGoogleカレンダーには、そのためのAPIがあります。 545 00:33:04,190 --> 00:33:07,810 あなたはどこにあなたを伝えるために起こっている何かを作りたい場合 546 00:33:07,810 --> 00:33:12,530 特定のアドレスの場所は、そのためにGoogle Maps APIを使用することができます。 547 00:33:12,530 --> 00:33:15,860 APIは素晴らしく便利です、そして、彼らはどこだ。 548 00:33:15,860 --> 00:33:18,700 あなたは、アイデアのいくつかの並べ替えに興味があるなら、 549 00:33:18,700 --> 00:33:22,170 関連のAPIを使用すると、大量のデータを取得するために使用できる、おそらくあり 550 00:33:22,170 --> 00:33:25,060 非常に迅速かつ非常に簡単。 551 00:33:25,060 --> 00:33:28,140 >> それでもプロジェクトを探しているなら、あるいは単に周りに再生したい場合 552 00:33:28,140 --> 00:33:31,820 一般的には何かで、APIは間違いなくやって価値があります。 553 00:33:31,820 --> 00:33:37,200 おかげで、私は君たちが持っているかもしれないあらゆる質問に答えることがうれしいです。 554 00:33:37,200 --> 00:33:44,900 わかりました、どうもありがとう。 555 00:33:44,900 --> 00:33:48,000 [CS50.TV]