[Powered by Google Translate] [سمینار] [معرفی یک برنامه نویس به رابط های برنامه کاربردی] [بیلی Janitsch] [دانشگاه هاروارد] [تامی MacWilliam] [این CS50.] [CS50.TV] سلام، همه، من بیلی، و امروز من قصد دارم به صحبت کردن در مورد رابط های برنامه کاربردی، و یا رابط های برنامه نویسی برنامه های کاربردی، به طور خاص در زمینه CS50 پروژه های نهایی و این نوع از چیزی. به طور کلی API چیست؟ در شرایط بسیار وسیع، آن را مرتب سازی بر از یک مرد وسط است که اجازه می دهد تا 2 قطعه نرم افزار برای برقراری ارتباط با یکدیگر است. این نوع تعریف بسیار گسترده ای است و مربوط به چیزی است که ما به دنبال آن است که نیست. چیزی که ما واقعا می خواهیم نوعی از وسط زمین مفید است برای برقراری ارتباط با برخی از مرتب کردن بر اساس پایگاه داده در جایی. در اینجا یک نمودار است، و در واقع ایده این است که ما یک برنامه، و ما می خواهیم برای دریافت اطلاعات از یک پایگاه داده، اما ما نمی خواهیم پایگاه داده به پرس و جو به طور مستقیم. در عوض ما می خواهیم از طریق این نوع از مرد میانه، API. ایده پشت این اعداد 2 و 3 را در جدول هر دو می شود بسیار پیچیده و کثیف. به عبارت دیگر، هنگامی که API پرس و جو از پایگاه داده، آن را احتمالا با استفاده از جداول SQL و همه از این نوع از مسائل، و ما کمی در مورد آن در CS50 آموخته، اما به طور کلی، شما متوجه شده ام که آن را کمی از درد. این بسیار، بسیار پیچیده و کثیف می شود، به ویژه هنگامی که شما در حال ساخت پرس و جو های پیچیده و این نوع از چیزی است. چیزی که ما واقعا می خواهیم نوعی از راه مفید و ساده است که برای دریافت داده ها است، و این ایده در پشت شماره های 1 و 4 در نمودار است. به عبارت دیگر، ما می خواهیم یک راه واقعا ساده برای گفتن API آنچه برای ما و یک راه واقعا ساده است که برای دریافت داده ها به عقب. یکی از راه های اصلی است که که داده ها است که معمولا ارسال و دریافت وجود دارد، است که JSON یا JavaScript نشانه گذاری شی. است که می تواند کمی تا آنجا که به شما ارسال درخواست به API های مختلف متفاوت است. به عبارت دیگر، اگر شما می خواهید برخی از مقدار مشخصی از داده ها، چگونه به شما بگویم API برای به دست آوردن داده ها می تواند کمی متفاوت باشد. معمولا آن را شامل برخی از مرتب کردن بر اساس درخواست شبکه. به عبارت دیگر، دسترسی به نوعی از URL که رفتن برای گفتن API دقیقا همان چیزی است که شما می خواهید، اما داده است که تقریبا همیشه فرستاده برگشت، به عبارت دیگر، شماره 4 در JSON. چه JSON دقیقا؟ همانطور که گفتم، شی جاوا اسکریپت نشانه گذاری. اساسا استاندارد جهانی برای انتقال و دریافت داده ها است. ایده این است که شما باید این 3 دسته از همه چیز می باشد. شما باید آرایه ها، hashmaps، و شکلهای هندسی اولیه. آرایه ها و hashmaps شما در کمی در CS50 نگاه، اما تو مرتب کردن بر اساس بدست یک حس بسیار سخت از آنها چه هستند. به عبارت دیگر، با آرایه شما می دانید که آنها را تایپ محدود، بنابراین شما فقط یک نوع از نوع می رود که در سراسر آرایه داشته باشد. JSON خیلی بیشتر ملایم با آن نوع از چیزی است. در واقع ایده ساخت این شیء، که می تواند از هر یک از این 3 چیز تشکیل شده است و می تواند از آنهایی متعدد از آنها تشکیل شده است، و آنها می توانند به صورت تو در تو. مرتب کردن بر اساس در اینجا یک مثال از JSON، است که این براکت فرفری در اینجا نشان دهنده hashmap خود را، و hashmap اساسا یک نگاشت از برخی از مرتب کردن بر اساس کلید به برخی از مرتب کردن بر اساس ارزش. شما در اینجا خواهید دید که ما کلید خواص، و این نقشه برداری را بر روی یک آرایه، که این همه چیز است. ما می بینیم که عنصر دیگری از hashmap، که این isAwesome کلیدی، که نقشه ها را به یک مقدار اولیه واقعی، به عبارت دیگر، یک مقدار Boolean. شکلهای هندسی اولیه می تواند رشته. آنها می توانند اعداد صحیح. آنها می توانند bools، هر چیزی شبیه به آن. و محتویات این آرایه شما می بینید که خواص نقاط دارای 2 رشته در آن، خود را مشابه و شگفت انگیز است. این 2 خواص JSON، و ما می بینیم که JSON عالی است. به دنبال که در آن کمی نزدیک تر من قصد دارم به ساخت یک مثال پیچیده تر از JSON در اینجا. بیایید با یک آرایه به عنوان مثال، فقط یک آرایه خالی است. اما این نوع از خسته کننده است، بنابراین ما در حال رفتن به آن را پر کنید تا کمی، و همان طور که گفتم، آرایه ها در JSON در نوع محدود، بنابراین ما نیز می تواند یک رشته را در اینجا است که با سلام، و این که عنصر دیگری از این آرایه است. و به همین ترتیب، ما می تواند hashmapping اینجا اضافه کنید، که در حال رفتن به چند نگاشت. این رفتن به یک نگاشت از نام بیلی رشته. ما باید یک نگاشت به نام بیلی، و ما باید نقشه برداری رنگ مورد علاقه آبی. اساسا یک مثال خوب از JSON. این نوع می شود به متأسفیم، نیاز به یک کاما از هم وجود دارد، همه از بخش های مختلف آن است. باز هم، آن را به نوع خاص محدود در همه است، بنابراین شما می توانید هر نوع از انواع در داخل هر چیزی که شما می خواهید، و این ایده آن است که خود مشابه است. به عبارت دیگر، این حق در اینجا یک شی JSON است، به عنوان این است که همه چیز، عنوان شده است فقط این است، بنابراین شما می توانید اولیه یک شی، یک آرایه یک شیء یا یک hashmap یک شی. JSON است، همانطور که شما می توانید نوع از دیدن، واقعا، واقعا مفید است که در آن به طوری که همه کاره است. شما می توانید هر گونه اطلاعات ممکن است که شما می توانید تصور در JSON ذخیره شده را داشته باشد. است که باعث می شود آن را به زبان واقعا به خوبی با استفاده از رابط های برنامه کاربردی چرا که آن را بسیار بدان معنی است که بدون توجه به آنچه که داده هایی را که شما می خواهید رفتن به برخی از راه های آن را به عقب بر گردیم در JSON وجود دارد. خواص چند که باعث JSON به ویژه برای این نوع از چیزی خوب است. همانطور که می بینید، در مقایسه با بسیاری از چیزهایی که شما در حال کار با در CS50 آن نسبتا بسیار آسان برای خواندن و همچنین بسیار آسان برای نوشتن. شما می توانید آن دندانه دار کردن اگر شما می خواهید، مانند من در آن به عنوان مثال انجام شد، که به شما می دهد یک نسخه زیبا و خوب، که شما می توانید ببینید که واقعا خوب است. اما علاوه بر این، آن را نیز آسان می کند به خواندن و نوشتن برای یک کامپیوتر. به عبارت دیگر، از آن آسان است برای تجزیه و آسان به رمز، که بدان معنی است که آن را بسیار سریع به عنوان دور به عنوان خواندن داده ها نگران است، و JSON را می توان واقعا به سرعت تولید شده است. آن نیز بسیار آسان برای دسترسی به بخش های مختلف از JSON و این نوع از چیزی. که خوب، و علاوه بر این، این واقعیت است که آن را خود مشابه، به عبارت دیگر، این واقعیت است که شما می توانید به JSON در داخل JSON در داخل JSON واقعا زیبا برای ذخیره سازی داده ها است. بخش دیگری است که به طور کلی واقعا مفید در کار با API های جی کوئری است. شما آموخته ام کمی از جاوا اسکریپت، که یک راه خوب است برای دستکاری HTML و CSS در درون یک وب سایت. اما این می تواند نوع درد به کد ساده جاوا اسکریپت، عمدتا به دلیل جاوا اسکریپت واقعا زبان دراز است. شما باید برای یادگیری بسیاری از نحو، و فقط برای انجام کارهای بسیار ساده تعداد زیادی از کد طول می کشد، بنابراین ذکر کرد که jQuery یک کتابخانه جاوا اسکریپت است. به عبارت دیگر، آن را به یک فایل جاوا اسکریپت است که شما می توانید بار و پس از آن از از توابع jQuery برای انجام کارهای خاص استفاده کنید. و jQuery اساسا باعث می شود زندگی خود را زیادی آسان تر است. آن را ساده آنچه را که صدها خط در جاوا اسکریپت را به چند خط در jQuery. این خصوص مفید باشد اگر شما با استفاده از API زیرا به طور کلی چگونه شما می شود دسترسی به رابط های برنامه کاربردی با درخواست های AJAX و من اعتقاد دارم که دیوید در سخنرانی ذکر شده است که درخواست های AJAX به طور کلی زمانی که شما در حال ساخت یک درخواست شبکه به نوعی از سرور و به دست آوردن برخی از مرتب کردن بر اساس داده ها و به روز رسانی این صفحه به آنی. در حالی که در جاوا اسکریپت ساده است که می تواند تعداد دیوانه از خطوط را به اعتبار همه از هدر و انجام تمام این نوع از مسائل، jQuery را واقعا یک تابع ساده به نام AJAX، و همه شما را مجبور به AJAX انجام است که به پارامترهای که شما می خواهید را به API، محل سکونت API و هر نوع دیگر از گزینه های را که می خواهید پیکربندی کنید. این واقعا، واقعا خوب و بسیار مفید برای این نوع از چیزی. همه ما نیاز به شروع به گرفتن دست ما کثیف در رابط های برنامه کاربردی است. من قصد دارم برای بالا آوردن چند مثال و بررسی خواص مختلف خود را و به همین دلیل آنها مفید برای انواع مختلف از همه چیز. اولین چیزی که من در واقع به شما نشان می دهد چیزی است که من کار بر روی در آزمایشگاه تحقیقات من، که در یک نمایشگر Ngram است، و اساسا این ایده یک بیننده Ngram است شما می توانید برای نوعی از کلمه جستجو یا عبارت و ببینید که چگونه اغلب از آن در یک مجموعه خاص از متن در طول زمان ظاهر شد. در این مثال در اینجا این مجموعه اطلاعات مربوط به نوزادان است بودند که بین سالهای 1920 و 2000 در نیویورک به دنیا آمد. ما می توانید، برای مثال، برای جنیفر به نام، و ما می بینیم که قبل از 1960s واقعا تمام شد که بسیار مورد استفاده، و پس از آن که ما را به سال های بعد از آن در حال استفاده می شود بیشتر و بیشتر شده است. ما همچنین می توانیم مقایسه انجام دهید، بنابراین اگر جنیفر را مقایسه می کنیم، به عنوان مثال، توماس، ما می توانید ببینید که توماس به خیلی شایع در طول تاریخ بوده است، در حالی که جنیفر نام اخیر است. ما می توانیم این نوع از چیزی که انجام دهد. چگونه این کار را می کند نرم افزار؟ در واقع، آن را از طریق یک API کار می کند. به عبارت دیگر، ما باید پارامترهای خاصی در اینجا. ما پارامترهای چیزی است که ما در واقع برای جستجو، که این نام، و پس از آن ما چند خواص دیگر، مانند محور Y و محور X است. شما می توانید ببینید که ما داریم چند گزینه مختلف تا آنجا که به قطعنامه و استفاده از این نوع از چیزی. ما باید این گزینه ها تا آنجا که به چه اطلاعات ما در واقع از پایگاه داده می خواهم، و ما می خواهیم که برای دریافت داده ها را در برخی از راه های مفید است. معمولا، اگر ما پرس و جو از پایگاه داده به طور مستقیم آن را نوعی درد را به انجام چرا که احتمالا این داده ها در مورد نام نوزاد در برخی از پایگاه داده در جایی زندگی می کند، و این امر می تواند واقعا پیچیده باید به آن پرس و جو دستی و تصمیم بگیرید که دقیقا همان چیزی است که داده ها به بازگشت. به عبارت دیگر، ما فقط در مورد جنیفر و توماس در این مورد مراقبت از خود، و ما تنها در مورد مراقبت از روی یک محور خاص و همه از این نوع از مسائل. چگونه ما می توانیم در اطراف این دریافت کنم؟ به این API به حفاری کمی بیشتر من به شما یک مثال دیگر از این پلت فرم را نشان می دهد که با استفاده از مجموعه داده های کمی متفاوت است. این مجموعه داده ها، به جای این که نام کودک، است که در واقع فقط کل چاپ نشریه پایگاه داده کتابخانه باز، که یک منبع بزرگ از متون منتشر شده در طول 100 یا سال گذشته است. ایده این است که ما باید این compository از میلیون ها و میلیون ها نفر از متن، که ما در حال حاضر می توانید برای جستجوی کلمات و عبارات مختلف وارد در اینجا یک مثال متفاوت است که کمی متفاوت از مثال قبلی من به شما نشان داد، که این است که ما باید این 3 پرس و جو جستجو. جنگ، جنگ است، و کلمه فرانسوی جنگ، که guerre. و ما در 3 بخش مختلف از کل پایگاه داده. به عبارت دیگر، در این پرس و جو فقط در ایالات متحده آمریکا، در دوم تنها در UK، و سوم تنها از آثار منتشر شده در فرانسه است. ما می بینیم برخی از الگوهای جالب پدیدار. به عنوان مثال، ما می بینیم درست در اینجا است که، اوه، من messed تا محور کمی، اما شما می توانید در این محدوده اینجا را ببینید به دور از جنگ های داخلی، افزایش بزرگ در نسخه آمریکایی وجود دارد اما چنین نیست سنبله بزرگ در دو نفر دیگر، و این بدیهی است به دلیل جنگ های داخلی آمریکا اتفاق می افتد که در آن نقطه بود. ما می توانیم برخی از چیزهای سرد وجود دارد را ببینید. اما آنچه که ما واقعا در مورد مراقبت این است که ما چگونه به این اطلاعات. من شما را در پشت صحنه این برنامه کمی طول می کشد. یک ترفند شسته و رفته است اگر شما در حال کار با سایت و نوع می خواهند بدانند چه خبر است در پشت صحنه، شما می توانید باز کردن ابزار توسعه دهنده. من قصد دارم تا با استفاده از ابزارهای توسعهدهنده کروم، و برای این که به کسانی که شما می توانید کنترل، تغییر، J، و که شما را به کنسول جاوا اسکریپت را انجام دهد. چند زبانه در اینجا وجود دارد. همه آنها می تواند بسیار مفید تحت شرایط مختلف باشد، اما من در مورد مراقبت از شبکه تب در حال حاضر، و من در واقع باید به تجدید که کار برای به دست آوردن. اوه، ببخشید. آن را دوست دارد برای دادن یک نمونه تصادفی است. خوب، ما به این مثال به جای آن و سپس استفاده کنید. ایده این است که این API در اینجا وجود دارد، و شما می توانید ببینید که دقیقا همان چیزی است که API بازگشته است. این همان چیزی است که نرم افزار در حال بازگشت از API ارسال می شود که درخواست شده است. اجازه دهید من در کمی زوم، و اصولا می توانیم آن را فقط به یک سری از جفت ارزش کلیدی در JSON را ببینید. به عبارت دیگر، ما باید این hashmap که نگاشت ارزش است. به عبارت دیگر، آن را نقشه برداری سال به ارزش. در سال 1765 هر کلمه ای که ما در ابتدا برای جستجو استفاده شده است 90 بار از 1 میلیون، بنابراین ما در حال گرفتن این نتیجه است. دقیقا نمی JSON از آنجایی که ما این نتیجه هدر در اینجا اما توجه کنید که این شیء در اینجا فقط یک لکه JSON بزرگ. ما باید یک آرایه که شامل کل این عنصر، و شما می توانید ببینید که عنصر کل به پایان می رسد، و پس از آن ما باید عنصر دیگری بزرگ می رود که تمام راه را تا آخر، و این که در اینجا به پایان می رسد. ما یک آرایه واقعا بزرگ با 2 اشیاء در آن، و هر یک از آن اشیاء hashmap است. شما می توانید در هر یک از کسانی که hashmaps ببینید که ما داریم نقشه برداری از این ارزش شاخص به 0 و ارزش این مقدار را به دیگری hashmap، که دوباره نگاشت ارزش محور X به ارزش محور Y است. شما می توانید ببینید JSON می شود کمی پیچیده است، اما به طور کلی، در واقع بسیار مفید است، و آن را بسیار آسان برای دسترسی به مقایسه با اشکال دیگر متفاوت از نماد. تا آنجا که به چیزی است که ما در واقع ارسال اطلاعات به API برای به دست آوردن، من قصد دارم به پایان دادن به عقب بروید کمی در اینجا. این فایل جاوا اسکریپت بزرگ است که دست زدن به تمام فعل و انفعالات برنامه وب است. و بنابراین ما در مورد بسیاری از این برام مهم نیست، اما در مورد برخی از آن کار می کنیم. برای مثال، ما در مورد این تابع buildQuery مراقبت، و این ایده از این تابع است که اساسا آن را به نگاه کردن به اطراف صفحه، تا بدانند آنچه را که کاربر می خواهد به پرس و جو، به عبارت دیگر، چک کردن جعبه جایی که آنها از ورودی واژه مورد جستجوی خود را، بررسی های مختلف Y و مقادیر X محور است که آنها را انتخاب کرده ایم و همه از این نوع از چیزی، و آن رفتن به تف از این مقدار پرس و جو، که من پس از آن می توانید به ارسال به API. این پیچیده به نظر می رسد، و آن را بسیار پیچیده اما آنچه من قصد دارم برای انجام در واقع، من در حال حاضر انجام این کار، که فوق العاده است این است که من قصد دارم به کنسول برای چاپ کردن که دقیقا مقدار پرس و جو که آن را ارسال به API. که در واقع حق در اینجا. با عرض پوزش، این خروجی بسیاری از مسائل است. اما این چیزی است که ما در مورد مراقبت، این شیء در اینجا ببینید. این شی پرس و جو است. به عبارت دیگر، این است که دقیقا همان چیزی است که برنامه تحت وب ارسال به API، و بنابراین نگاه کردن به درون کمی اجازه دهید، و ما می بینیم ما یک ارزش چند در اینجا. ما می بینیم که ما در این نوع شمارش است که ظهور در هر یک میلیون کلمه، است که دقیقا همان چیزی است که ما انجام داده ایم، در محور Y در اینجا انتخاب شده است. این که در آن است که از. ما باید ارزش های پایگاه داده، که بدان معنی است که در برخی از پایگاه داده خاصی وجود دارد که این داده ها زندگی می کنند، و ما می خواهیم برای دسترسی به این داده ها به طور خاص به عنوان مخالف به نام کودک داده ها، به عنوان مثال. پس ما می توانیم این مقدار گروه، که می گوید که ما می خواهیم تا سال جستجو به عنوان مخالف هر X دیگر ارزش محور است. سپس ما یک روش که برخی از رابط های برنامه کاربردی را به کارهای متعدد انجام است. به عبارت دیگر، این API نیز می توانید انواع دیگر داده ها را به شما بر می گردانند، اما در این مورد، ما می خواهیم که نقشه برداری از مقادیر محور X به ارزش محور Y است. این همان چیزی است که آن را گفتن برای انجام وجود دارد، و ما باید این محدودیت جستجو در آرایه، که حاوی 2 ارزش است. یکی از اولین این همان چیزی است که ما می بینیم، که همه از ارزش ها است در اولین که جعبه کوچک در بالا موجود است. به عبارت دیگر، ما می خواهیم برای نبرد کلمه نگاه کنید، و ما می خواهیم به آن فیلتر متون انگلیسی در ادبیات آمریکا است. در حال حاضر این کشور، است که ایالات متحده آمریکا است. ما باید یک زبان، که به زبان انگلیسی است، بنابراین ما باید همه از این بخش های مختلف که همه گفتن API دقیقا همان چیزی است که ما می خواهیم. ما نمی دانیم که چه داده هایی را که ما به عقب بر گردیم در عین حال، اما ما می دانیم که داده ها را به یک شکل خاص است. در این مثال مرتب سازی بر اساس در سمت پیچیده، و شما لزوما نمی شود با استفاده از API این مجموعه، اما این است که دامنه و قدرت از چه رابط های برنامه کاربردی می توانید انجام دهید به شما نشان می دهد. به عبارت دیگر، با استفاده از یک سیستم پرس و جو نسبتا ساده ما اساسا یک جعبه ورودی با چند انتخابگرهای دیگر در مکان های مختلف است. اجازه دهید من زوم از اینجا. ما باید یک جعبه ورودی با چند انتخاب مختلف ابرداده، و ما باید محور Y و انتخاب محور X است. ما واقعا نمی زمینه که بسیاری از، و ما به راحتی می توانید ببینید که ما قادر به پرس و جو نوعی از API و دریافت داده ها به عقب قرار داده و سپس آن را به این نمودار، است که رفتن به آن را در یک راه مفید نشان دادن است. به دنبال در یک مثال دیگر است که ممکن است کمی به شما بچه ها بیشتر آشنا ما قصد داریم به نوبه خود به فیس بوک. API فیس بوک به نام گراف فیس بوک، و اساسا این بدان معناست فیس بوک خود را می بیند که این پایگاه داده عظیم بسیاری از بخش های مختلف است که همه آنها روابط خاص به یکدیگر است. به عبارت دیگر، من یک کاربر در فیس بوک، بنابراین من باید مشخصات، و من هم از دوستان خاص، و هر یک از آنها دارای یک پروفایل و هر یک از دوستان من یک دیوار است که نظرات مختلف در آن، و هر یک از آن نظر است دوست داشتن و همه از این نوع از چیزی. بسیاری از بخش های مختلف به فیس بوک وجود دارد. این API بسیار پیچیده است، و تن وجود دارد شما می توانید با آن انجام دهید، اما در واقع بسیار ساده برای استفاده است. من قصد دارم برای شروع با رفتن به graph.facebook.com / billyjanitsch، که نام حساب من منحصر به فرد است، و نام کاربری شما هم خواهد بود نوعی از کلمه اگر شما از آن انتخاب شده است، و یا آن را فقط ممکن است یک رشته ای از اعداد است. چیزی که ما به عقب بر گردیم اطلاعات بسیار اساسی است. ما می بینیم که من آن را به نام، که بیلی، نام خانوادگی، که Janitsch. یک ID منحصر به فرد فیس بوک وجود دارد که به من. شما می توانید ببینید که من مرد و من تنظیم زبان من انگلیسی بریتانیایی. به عبارت دیگر، ما در حال دیدن اطلاعات بسیار اساسی در اینجا. این بیش از حد نیست، اما آن را نشانی از ما ایده از آنچه وجود دارد به من بدهید. ما می توانیم همان چیزی که به دیوید مالان انجام دهید، به عنوان مثال. من فکر می کنم نام خود را dmalan. ما می بینیم دیوید مالان است ID منحصر به فرد است. او دارای نام، نام، نام میانی، نام خانوادگی. ما همچنین به این که او مرد است و مجموعه ای زبان خود را به ایالات متحده انگلیسی را ببینید. به عبارت دیگر، ما در حال دیدن اطلاعات بسیار اساسی در اینجا. در حال حاضر، چه اتفاقی می افتد اگر ما سعی می کنیم به چیز دیگری؟ بیایید می گویند در آنچه دیوید مالان در فیس بوک دوست من علاقه مند هستم. من می توانم / دوست داشتن را انجام دهد. حالا ما به یک مشکل اجرا شود. ما باید برخی از مرتب کردن بر اساس خطا است که می گوید: یک نشانه دسترسی لازم است به درخواست این منابع است. اما اگر شما در مورد آن فکر می کنم، که در واقع حس می کند زیرا این امر می تواند عجیب و غریب اگر شما می توانید هر بخشی از پایگاه داده در فیس بوک دسترسی داشته باشید فقط از نوعی از API های ساده، درست است؟ به عبارت دیگر، احتمالا اطلاعات شما می تواند توسط هر کسی که آن را می خواهد نمی شود دسترسی پیدا کرد. این خطا دقیقا چیزی است که این بدان معناست که در نظر گرفته شده است. برخی از رابط های برنامه کاربردی نیاز به مجوز خاصی به منظور دسترسی به داده های خود را. و حتی پیشرفته تر رابط های برنامه کاربردی مانند فیس بوک، نیاز به مجوز خاصی برای انجام کارهای خاص. من می توانم این اطلاعات پایه در مورد دیوید مالان را ببینید. من می توانم ببینم که او مرد و او در ایالات متحده آمریکا زندگی می کند، اما من واقعا نمی تواند دیدن هر چیزی در گذشته که. برای به دست آوردن در اطراف این فیس بوک در حال حاضر، این ابزار خوب که نمودار API اکسپلورر است و این ایده که شما می توانید مرتب سازی بر اساس را تشکیل می دهند مجوز برای خودتان بر اساس حساب خود را و پس از آن چیزهایی است که به طور خاص حساب خود را می توانید مشاهده کنید. برای مثال، اگر من graph.facebook.com/billyjanitsch/likes- اوه، من حدس می زنم من به revalidate نشانه من در اینجا. باشه. اگر من این کار را دوباره، بزرگ، در حال حاضر من می بینم که من این شی که می گوید که من می خواهم رشته فرنگی استخر، که در بازی های این رده و اسباب بازی. من دوست دارم walruses، که در حیوانات رده هستند. این دوست داشتن واقعی فیس بوک من می باشد. آنها نوع شرم آور است. اما ما می توانیم این داده ها در JSON بازگردانده شده است. این خیلی قابل خواندن است. به عبارت دیگر، ما باید این نقشه برداری از داده ها به نوعی از یک آرایه، و هر عنصر از این آرایه hashmap که نقشه است نام مانند و شاخه مانند است. هر یک مانند یک ID منحصر به فرد است. تمام انواع چیزهای مختلف از داده هایی را که ما می توانیم وجود دارد، و اگر شما علاقه مند در استفاده از API فیس بوک برای پروژه نهایی CS50 و یا برای هر چیزی می خواهم که آن را در واقع کاملا شدنی است. اساسا چگونه شما اطراف چیزی احراز هویت فیس بوک است با استفاده از یک سیستم به نام OAuth حفظ، یا تأیید اعتبار باز، و من نمی خواهم به آن را در حال حاضر به دلیل OAuth حفظ و یا از نوع های مختلف احراز هویت تمایل به بسیاری میان رابط های برنامه کاربردی مختلف متفاوت باشد، بنابراین من می تواند مدت زمان طولانی را صرف کنند، بیش از هر یک از اما آنها در واقع بسیار واضح است. اگر شما از فیس بوک API گوگل آن را بسیار قابل خواندن است. تمام تنظیمات وجود دارد. به عنوان مثال، این مستندات API فیس بوک است و شما می توانید ببینید که من در صفحه کاربری، بنابراین من می توانم همه چیز در مورد انواع مختلف چیزهایی یاد بگیرند که در دسترس هستند برای به دست آوردن داده ها، تا آنجا که و همچنین مجوزهای مختلف است که نیاز من به آنها دسترسی داشته باشید. همانطور که ما را دید، اجازه لازم نیست برای دسترسی به نام و یا جنس، اما فراتر از آنچه که ما نیاز به مجوز برای بسیاری از چیزهایی است. این صفحه، و یا به جای، این وب سایت نیز به شما چگونه می توانید بگویید یک نشانه می شود قادر به تأیید اعتبار خودتان. بسیاری از سیستم های احراز هویت با استفاده از نوعی از نشانه که در آن شما می توانید این مقدار منحصر به فرد، که واقعا یک رشته طولانی و تصادفی، و به این ترتیب آنها می توانید درخواست می کند که شما با شما شریک باشد. به عبارت دیگر، آنها می دانند که شما به چیزی مشکوک با داده های خود را انجام نمی دهد. آنها می دانند که دقیقا همان چیزی است که شما در حال گرفتن. آنها همچنین می دانیم که شما اجازه برای مشاهده این اطلاعات است. اگر شما یک برنامه فیس بوک و برنامه خود را تا به کاربران خاص، و آن دسته از کاربران اجازه داده اند که برنامه برای دسترسی به بخش های خاصی از صفحه مشخصات شان را، پس از آن هر چه کلید API و یا نشانه است که این برنامه با استفاده از خواهد بود قادر به دسترسی به داده ها برای آن دسته از کاربران است. این صدا ممکن است پیچیده است، اما این خیلی بد نیست، و اگر شما می خواهید به استفاده از فیس بوک من به شدت توصیه می در نظر بازی در اطراف با API های خود را. این بسیار سرد است، و شما می توانید بسیاری از چیزهای مختلفی را با آن انجام دهد. اگر کاربر کمک هزینه به شما این مجوز شما حتی می توانید بازگشت به API و می گویند من می خواهم به واقع به دیوار به این کاربر ارسال، و یا من می خواهم به آنها ارسال عکس، و به همین دلیل است که در خبر خود شما گاهی اوقات می خواهید آن چیزهایی مزاحم گفت: دوست خود را به این فیلم در برخی از مرتب کردن بر اساس سایت عجیب و غریب و یا چیزی شبیه به آن را تماشا می کردند. این به این دلیل است که برنامه برای دسترسی به پست بر روی دیوار آن شخص صادر شده است. این ایده به طور کلی، API فیس بوک بسیار پیچیده است اما واقعا مفید است. قطعا ارزش چک کردن اگر شما هنوز هم برای یک پروژه نهایی. یکی دیگر از مجموعه ای از رابط های برنامه کاربردی است که من قصد دارم به بیش CS50 رابط های برنامه کاربردی می باشد. اجازه بدهید در اینجا زوم. CS50 در واقع با هم قرار دادن یک سری کامل از رابط های برنامه کاربردی که شما می توانید برای یک پروژه نهایی و یا فقط برای هر چیزی که شما در حال استفاده کنید. و آنها عمدتا مرتبط با هاروارد، و آنها را از منو چارچوب متفاوت، به عنوان مثال، به این رویدادها API دانشگاه هاروارد، که به شما اجازه دسترسی به یک لیست از شما رویدادهای مختلف است که در دانشگاه هاروارد در حال رفتن و آن نوع از چیزی است. و بنابراین ما می توانید با کلیک بر روی هر یک از این و تنظیمات را برای آن دریافت، که شما قادر خواهید بود برای پیدا کردن برای هر API، و این ایده است آن را به شما اجازه می دهد که می دانید، A، به طور خاص به درخواست از API و چگونه آن را درخواست. به عبارت دیگر، اگر من می خواهم تمام رویدادهایی که اتفاق می افتد فردا پس از آن من به بدیهی است آن است که تاریخ است که من می خواهم در یک فرمت خاص می دهد، و B، به من دقیقا همان چیزی است که آن اتفاق را به من بگویید. این خواهد گفت: من قصد دارم به شما این شی JSON بازگشت، یا شما می توانید ببینید، فرمت های مختلف وجود دارد. شما همچنین می توانید داده ها را به عنوان یک CSV بازگشت، به عنوان مثال. اما شما می دانید که دقیقا چگونه است که داده از رفتن به نگاه زمانی که شما آن را به عقب بر گردیم بنابراین شما می توانید انتظار برای انجام کارهای خاص با آن. ما می توانیم در پایین حرکت کنید و ببینید، برای مثال، اگر ما می خواهیم به پرس و جو از API برای دریافت تقویم، پس ما می توانیم به این URL خاص استفاده کنید و به پارامترهای خاصی است که در حال رفتن به داده هایی را که ما می خواهیم دقیقا می دهد. و به همین ترتیب، اگر ما می خواهیم داده ها را در یک فرمت خاص، پس از آن ما می توانیم آن را به خروجی داده ها در CSV، و این که فقط یک پارامتر که ما در حال عبور به API است. بسیاری از چیزهای سرد برای انجام وجود دارد. من قطعا چک کردن API های CS50 را توصیه کند. من قصد دارم به در این API غذا هاروارد به ویژه برای کمی است. یک چیزی که من در واقع طراحی این وب سایت Noms دانشگاه هاروارد است، که با استفاده از API غذایی CS50 برای بازیابی منو چارچوب برای روز. و چارچوب برای مردم مدرسه فرمت، سرویس ناهار خوری را در دانشگاه هاروارد است. آنچه کسب می کنید این صفحه ای که حاوی همه از وعده های غذایی در روز است، به طوری که ما می بینیم ناهار است. ما چند دسته مختلف. در حال حاضر ایستگاه حبوبات و غلات کامل. ما ایستگاه برنج قهوه ای است. ما می توانیم برای صبحانه ببینید که ما داریم این مواد غذایی چند. اگر ما بر روی آنها کلیک کنید، سپس اطلاعات تغذیه ما دریافت کنید. همانطور که می بینید این است که اطلاعات تغذیه برای گریپ فروت، در صورتی که شما را شگفت زده شدند. و دوباره، ما قصد داریم به پایان دادن به عقب همکار در اینجا یک کمی و آنچه که دقیقا این است که برای به دست آوردن این اطلاعات است. و معلوم واقع نمی شود بسیار پیچیده است. این فایل به نظر می رسد کمی کثیف است، اما به خاطر داشته باشید که این مدیریت کل وب سایت، و اگر من در پایین حرکت این تغییر عملکرد داده ها را ببینید. در حال حاضر، فقط برای روشن شود، این است که در CoffeeScript نوشته شده است، است که یک زبان است که احتمالا شما را دیده اند، نه قبل از. اما آن را بسیار قابل خواندن است، به طوری که من راه رفتن را از طریق آن هر چند آن را به عنوان شبه. تاریخ تغییر یک تابع است که رفتن به در این ارزش تاریخ را، و آن را نیز در اول را، که ما در مورد مراقبت نه به اندازه. اما نکته مهم این است که آن را تا این تاریخ، و این تاریخ روزی که ما می خواهیم به درخواست همه از اقلام مواد غذایی است. و پس از آن شما ببینید که ما داریم کمی نحو در اینجا، است که اساسا تجزیه است که تاریخ را به یک فرمت قابل خواندن است. API به عبارت دیگر، نیاز به تاریخ در یک فرمت خاص است. شما نمی توانید فقط می گویند نوامبر 16th، یدلایمخیرات 2012 AD. نمی دانیم چه چیزی را باید با آن انجام دهد. این می خواهد تاریخ در یک فرمت خاص است. همه ما در حال انجام است که آن را دادن که دقیقا قالب، که یک مقدار سال و پس از آن یک خط رابط بین کلماتی که نصف ان در سطر بعد واقع شده، ارزش ماه، یکی دیگر از خط رابط بین کلماتی که نصف ان در سطر بعد واقع شده و ارزش تاریخ است. و ما نیز می گویند ما می خواهیم اطلاعات را به عنوان خروجی در JSON. در حال حاضر ما در حال ساخت این درخواست AJAX، و همان طور که قبلا ذکر شد، jQuery را فوق العاده مفید این تابع AJAX است که همه شما باید انجام دهید این است که مشخص چند پارامتر را در اینجا، و آن را به شما برگشت دقیقا همان چیزی است که شما می خواهید به من بدهید. ما آن را به گفتن است که URL که ما می خواهیم آن را به رفتن به این API CS50 غذا، که ما از تنظیمات کردم. ما می گویند که ما می خواهیم داده ها در JSON و ما در حال رفتن به آن این اطلاعات است که ما تعریف کرده ایم تا در اینجا به من بدهید. این روز ما می خواهیم که مواد غذایی است. و پس از آن همه ما باید انجام دهیم این است تعریف برخی از مرتب کردن بر اساس عملکرد موفقیت، است که اساسا چه اتفاقی می افتد هنگامی که API است که داده ها را باز می گرداند. به عبارت دیگر، ما از بسته بندی کردن تمام پارامترهای که ما می خواهیم، که در این مورد در روز است که ما آن را می خواهم و این واقعیت است که ما آن را می خواهم در JSON، و ما آن را فرستاده به API، بنابراین در حال حاضر API گفته است، درست است. در اینجا داده شده است، من آن را کردم برای شما. ما باید تابع موفقیت، که به معنی داده شده است که از API برخی از داده ها با موفقیت برمی گرداند، آنچه ما را با آن انجام دهید؟ و معلوم است که همه ما انجام می دهیم این است که این تابع به روز رسانی منو با هر API بازگشته است، به طوری که ما می توانیم برای این جستجو و ببینید که همه ما در حال انجام است که با استفاده از یک دسته از تگ های جدید در اینجا برای به روز رسانی HTML و قرار دادن این اطلاعات جدید است. این اجازه می دهد این است که ما باید این فلش ها در هر دو طرف است، و ما می توانید کلیک کنید و در حال حاضر ما در حال نگاه کردن به داده ها را برای روز بعد و دوباره روز بعد، و هر بار آن را به روز رسانی که مقدار تاریخ و پرس و جو از API، گرفتن برخی از داده ها و قرار دادن آن در سایت. باز هم، شما می توانید ببینید، فوق العاده، فوق العاده مفید است. این برنامه در زمان چند ساعت به من برای هک کردن با هم، و من تجربه کمی بیشتر است، بدیهی است، اما CS50 پروژه نهایی خود می توانید چیزی بسیار شبیه به این. API ها فوق العاده قدرتمند برای میزان تلاش است که آنها را. آخرین چیزی که من قصد دارم به رفتن بیش از چند رابط های برنامه کاربردی گسترده است. من تا آنجا که نمی خواهد به آنها تا آنجا که به آنچه انجام می دهند به طور خاص، اما من به شما یک ایده از آنچه در خارج وجود دارد به من بدهید. 2 آنهایی که واقعا مفید است، اگر شما علاقه مند در تجزیه و تحلیل داده ها و یا تجسم و یا هر چیزی شبیه به آن، Freebase وارد و ویکیپدیا. ویکیپدیا احتمالا همه شما می دانیم که یک دایره المعارف آنلاین رایگان، و آن را در واقع یک API، بنابراین اگر شما می خواهید، برای مثال، گرفتن همه از متون و مقالات برای هشت پا شما به راحتی می تواند انجام دهد. فقط بگو هی، ویکیپدیا API، من می خواهم اطلاعات بازگردانده شده به عنوان این می خواهم، و من می خواهم آن را در این قالب می خواهم، و این مقاله من می خواهم این است هشت پا، و به سرعت آن را به شما برگشت را که اطلاعات. است که می تواند واقعا مفید باشد اگر شما می خواهید برای ایجاد برخی از مرتب کردن بر اساس سایت که بیننده بهتر برای ویکیپدیا و یا چیزی شبیه به آن است. Freebase وارد مرتب کردن بر اساس مشابه است، هر چند آن را کمی سخت تر به عنوان دور به عنوان API. Freebase وارد است مانند ویکیپدیا که در آن یک دایره المعارف آنلاین که حاوی مقدار زیادی و تعداد زیادی از داده های مختلف در مورد انواع و اقسام موضوعات مختلف، اما آن را در یک پایگاه داده رابطه ای است که کمی متفاوت از ویکیپدیا ذخیره می شود. ویکیپدیا مقالات و مقالات مرتبط به دیگر مقالات، اما در اکثر موارد، اگر شما می خواهید داده ها را برای هشت پا، شما را به مقاله هشت پا، که داده است، و شما یک دسته از متن در مورد اختاپوس، به طوری که بزرگ است. Freebase وارد به شیوه ای کمی پیچیده تر است که در آن کار می کند همه چیز به یک دیگر مربوط می شود. به عبارت دیگر، اگر ما در حال جستجو برای هشت پا سپس آن را به یک دسته از مقوله های مرتبط با آن است. به عنوان مثال، آن را به یک حیوان، آن را در زیر آب زندگی می کند، از آن است که دمای بدن خاص است. نمی دانم. و همه از این دسته بندی ها را به مکان های دیگر که در آن شما می توانید به برای دیدن چیزهایی که با گروه های مشابه. به عبارت دیگر، هشت پا مجموعه داده ها شامل یک لینک به اطلاعات برای تمام حیوانات، و لازم است که به من اجازه حرکت در سراسر در پایگاه داده واقعا به سرعت. این می تواند بسیار مفید باشد اگر شما در حال انجام چیزی شبیه به مقایسه. به عبارت دیگر، با توجه به چیزی خاص، شما می خواهید برای دیدن چه چیز دیگری آن را مربوط به و ببینید که چه چیز دیگری آن را به مربوط نیست. آن نوع از چیزی. در تعدادی از راه این می تواند مفید باشد. اگر شما به دنبال برای بیش از یک چالش و قادر به انجام برخی از کارهای پیچیده تر من می خواهم در نظر گرفتن یک نگاهی به API Freebase وارد است. اما تا حد زیادی، ویکی پدیا یک محل بسیار ساده برای رفتن تا آنجا که به دست آوردن اطلاعات است. یکی دیگر از جایی که من در نگاه Last.fm، و من در واقع برای رفتن به سایت در مورد برخی از مردم آشنا نیست، اما Last.fm است که اساسا موسیقی سلیقه و توصیه های وب سایت. شما می توانید یک حساب کاربری ایجاد کنید. شما می توانید از آپلود موسیقی از دستگاه پخش موسیقی خود را شروع به وب سایت، و اساسا آن آغاز خواهد شد به شما توصیه موسیقی بر اساس آنچه شما را به گوش دادن. به عنوان مثال، اگر شما را به مشخصات خود را به این مال من است شما می توانید ببینید که شما یک لیست از گوش دادن به آهنگ. شما می توانید از هنرمندان مورد علاقه به طور کلی، همه از این نوع از چیزی را ببینید، و دوباره، یک API بزرگ پشت Last.fm وجود دارد،  و شما می توانید آن را به انجام بسیاری و بسیاری از چیزهای واقعا سرد استفاده کنید. به عنوان مثال، من به صفحه یکی از دوستان که این وب سایت Last.fm ابزارهای بروید. این است که در واقع یکی دیگر از پلت فرم که در API Last.fm ساخته شده است، و آن را تعدادی از چیزهای جالب است. اگر من وارد سیستم شوید با نام کاربری من، به عنوان مثال، من می توانم آن را به تولید ابر برچسب، برای مثال، و آنچه که برای انجام این کار این است که به من یک تصویر تمام ژانرهای مختلف و این نوع از چیزی که من می خواهم برای گوش دادن به. چگونه انجام این کار؟ خیلی اساسا آن گفت: به API Last.fm در اینجا این کاربر نقل قول این ارسال در پاسخ است. من می خواهم به این ژانر از هر آهنگ می دانیم که آنها تا کنون به گوش، و شما می توانید با ساخت یک تماس خیلی ساده AJAX API Last.fm انجام دهد. شما یک لیست بزرگ، و پس از آن بدیهی است که برخی از چیزهای دیگر در حال انجام است آن را تبدیل به ابر کلمه است، اما شما می توانید ببینید به طور کلی برای دسترسی به آن بسیار آسان است و بسیار آسان برای استفاده. واقعا خوبی برای تعدادی از چیزهایی است. من فکر می کنم که در مورد تمام من به طور کلی می گویند. آخرین چیزی که من در مورد API ها به طور کلی به ذکر است که شما گاهی اوقات می خواهید به چیزی به نام سرعت محدود اجرا شود، و این ایده از میزان محدود کردن این است که شما نمی خواهید به سوء استفاده از رابط های برنامه کاربردی است. به عبارت دیگر، آن را واقعا خوب است که بسیاری از این وب سایت ها دارای رابط های برنامه کاربردی که شما می توانید بروید و به صورت رایگان استفاده کنید. با این حال، اگر شما در حال ساخت میلیون ها و یا میلیاردها درخواست در هر روز، به عنوان مثال، اگر شما در یک حلقه بی نهایت که بی نهایت پرس و جو گیر نوعی از API و گرفتن مقدار زیادی از داده ها، بدیهی است که خوب نیست، پس چه بسیاری از رابط های برنامه کاربردی انجام دهیم این است که این نرخ محدود کردن ویژگی که می گوید شما فقط می توانید 1،000 درخواست در هر روز در آدرس IP و یا چیزی شبیه به آن. و اگر شما در حال انجام بسیاری از تست و آن نوع از چیزی، شما گاهی اوقات می خواهید به آن اجرا شود، و ناگهان آن را به شما قطع و می گویند نه، من دادن نیست که شما داده های هر بیشتر. چیزی که شما می خواهید برای انجام این کار این است که با قوانین بازی. شما می خواهید مطمئن شوید که شما خواندن مشخصات API با دقت. اگر آن مقررات خاصی که به آن متصل است، مثل شما فقط می توانید نمایش داده شد X در هر روز یا شما فقط می توانید بخشی از پایگاه داده دسترسی به تعداد خاصی از زمان یا چیزی شبیه به آن که می خواهید مطمئن شوید که شما به آن می چسبد. تا زمانی که شما در داخل آن قواعد بازی شما احتمالا به یک زمان واقعا خوبی با استفاده از رابط های برنامه کاربردی داشته باشد. غذای آماده به طور کلی شما API ها واقعا مفید است. API برای تقریبا هر نوع خدمات وب سایت بزرگ خارج وجود دارد وجود دارد. تقریبا هر بخشی از مجموعه ابزار گوگل، گوگل نقشه، کره زمین گوگل، جیمیل، تقویم گوگل، همه از آن چیزهایی است که رابط های برنامه کاربردی. شما می توانید آنها را به هر دو داده ها را از سرور استفاده و ارسال اطلاعات به سرور است. به عبارت دیگر، اگر شما می خواهید برای ایجاد یک برنامه تقویم است که می تواند به روز رسانی تقویم کسی، گوگل، API برای آن وجود دارد. اگر شما می خواهید به چیزی است که می خواهم به شما بگویم که در آن محل سکونت از یک آدرس خاص است که شما می توانید از API نقشه گوگل که با استفاده از. رابط های برنامه کاربردی فوق العاده مفید هستند، و آنها در همه جا. اگر شما علاقه مند در برخی از مرتب کردن بر اساس ایده، احتمالا API مربوط است که شما می توانید با استفاده از مقدار زیادی از داده ها برای به دست آوردن وجود دارد بسیار سریع و خیلی ساده است. اگر شما هنوز هم برای یک پروژه و یا اگر به دنبال شما فقط می خواهم به بازی در اطراف با چیزی به طور کلی، API ها قطعا ارزش کار است. با تشکر از شما، و من خوشحالم برای پاسخ به هر گونه سؤال که شما بچه ها ممکن است داشته باشند. خوب، خیلی متشکرم. [CS50.TV]