Dropbox API به توسعه دهندگان این امکان را می دهد تا با فایل ها در Dropbox کار کنند ، از جمله عملکردهای پیشرفته مانند جستجوی متن کامل ، کوچک و به اشتراک گذاری. Dropbox API Explorer ساده ترین راه برای شروع تماس های API است.
به طور کلی ، Dropbox API از درخواست های HTTP Post با استدلال های JSON و پاسخ های JSON استفاده می کند. احراز هویت درخواست از طریق OAUTH 2. 0 با استفاده از هدر درخواست مجوز یا پارامتر URL مجوز است.
قسمت . TAG در یک شیء زیرگروه یک ساختار یا عضو منتخب یک اتحادیه را مشخص می کند.
When specifying a Void member of a union, you may supply just the member string in place of the entire tagged union object. For example, when supplying a WriteMode , you can supply just "mode": "add" instead of "mode":>بشراین کوتاه مدت برای اعضای غیر باطل مجاز نیست. به عنوان مثال ، موارد زیر برای یک نویسنده مجاز نیست ، زیرا بروزرسانی عضو باطل نیست: "حالت": "بروزرسانی".
این نقاط پایانی استدلال ها را به عنوان JSON در بدنه درخواست می پذیرند و نتایج را به عنوان JSON در بدنه پاسخ می گیرند. نقاط پایانی RPC در دامنه api. dropboxapi.com قرار دارد.
این نقاط پایانی محتوای پرونده را در بدنه درخواست می پذیرند ، بنابراین آرگومان های آنها در عوض به عنوان JSON در هدر درخواست Dropbox-API-ARG یا پارامتر URL ARG منتقل می شوند. این نقاط پایانی در دامنه Content. dropboxapi.com قرار دارند.
همانطور که با نقاط پایانی محتوا-Upload ، آرگومان ها در هدر درخواست Dropbox-API-ARG یا پارامتر URL ARG منتقل می شوند. بدنه پاسخ حاوی محتوای پرونده است ، بنابراین نتیجه به عنوان JSON در عنوان پاسخ Dropbox-API-Result ظاهر می شود. این نقاط پایانی نیز در دامنه Content. dropboxapi.com قرار دارند.
این نقاط پایانی همچنین از HTTP پشتیبانی می کنند که با درخواست های ذخیره سازی مبتنی بر ETAG (IF-NONE-MATCH) و درخواست های HTTP همراه هستند.
برای اطلاعات در مورد نحوه رمزگذاری صحیح JSON ، به صفحه رمزگذاری JSON مراجعه کنید.
هنگامی که کد JavaScript مبتنی بر مرورگر درخواست HTTP متقاطع را ایجاد می کند ، مرورگر گاهی اوقات باید یک چک "قبل از پرواز" را ارسال کند تا مطمئن شوید سرور اجازه درخواست های متقابل را می دهد. شما می توانید با اطمینان از درخواست شما با تعریف CORS از "درخواست ساده سایت" ، از سفر اضافی خودداری کنید.
تمام تاریخ های موجود در API UTC و رشته هایی در قالب ISO 8601 "تاریخ و زمان ترکیبی" هستند:
مسیرها بسته به نوع دسترسی برنامه) نسبت به ریشه برنامه (یا یک پوشه برنامه یا ریشه Dropbox کاربر) است. رشته خالی ("") پوشه ریشه را نشان می دهد. تمام مسیرهای دیگر باید با یک برش شروع شوند (به عنوان مثال "/hello/world. txt"). مسیرها ممکن است با یک برش یا فضای سفید به پایان نرسند. برای سایر محدودیت های مسیر ، به مرکز راهنما مراجعه کنید.
هر پرونده و پوشه در Dropbox همچنین دارای یک شناسه (به عنوان مثال "شناسه: ABC123XYZ") است که از هر نقطه پایانی که به ابرداده باز می گردد ، می توان به دست آورد. این شناسه ها حساس به مورد هستند ، بنابراین همیشه باید با پرونده خود نگهداری شوند و همیشه به صورت حساس به مورد مقایسه شوند. برخی از نقاط پایانی ، همانطور که در مستندات نقطه پایانی در زیر ذکر شد ، می توانند علاوه بر مسیرهای عادی ، شناسه ها را بپذیرند. مسیری نسبت به شناسه پوشه را می توان با استفاده از برش (به عنوان مثال "شناسه: ABC123XYZ/Hello. txt") ساخته شد.
برای نقاط پایانی که انجام اقدامات به نمایندگی از یک مدیر تیم با استفاده از هدر Dropbox-API-Admin را قبول می کنند ، ممکن است پرونده ها با استفاده از یک مسیر نسبی فضای نام (به عنوان مثال "NS: 123456/Cupcake.png") ارجاع شوند. در این حالت ، شناسه فضای نام ، "123456" ، می تواند shared_folder_id یا team_folder_id از پوشه مشترک یا پوشه تیمی حاوی پرونده یا پوشه و مسیر "/cupcake.png" باشد ، مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی به سمت منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی به سمت منطقی برای مسیر منطقی برای مسیر منطقی به سمت منطقی برای مسیر منطقی برای مسیر منطقی به سمت منطقی برای مسیر منطقی برای مسیر منطقی به سمت منطقی برای مسیر منطقی برای مسیر منطقی به سمت منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی به سمت منطقی برای مسیر منطقی برای راه منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای مسیر منطقی برای راهپیمایی - cupcake.png "است. محتوا نسبت به پوشه مشترک یا ظرف پوشه تیمی آن.
مانند خود Dropbox ، مسیرهای موجود در API Dropbox حساس هستند ، به این معنی که /a/b/c. txt همان پرونده ای به نام /a/b/c. txt است و همان پرونده ای است که/a/b/c است. txt.
این می تواند برای برنامه هایی که ابرداده پرونده را از کاربران در پایگاه داده های حساس به مورد (مانند SQLite یا Postgres) ذخیره می کنند ، ایجاد کند. در هنگام ذخیره ابرداده Dropbox Path در چنین بانکهای اطلاعاتی باید از مجموعه های غیر حساس مورد استفاده شود. از طرف دیگر ، توسعه دهندگان باید اطمینان حاصل کنند که اپراتورهای پرس و جو خود به صراحت بی حس هستند.
همچنین ، در حالی که Dropbox از نظر موردی حساس است ، تلاش می کند تا از مواردی استفاده شود. metadata. name حاوی پرونده صحیح است. metadata. path_display معمولاً حاوی یک مورد صحیح است ، اما گاهی اوقات فقط در آخرین مؤلفه مسیر. اگر برنامه شما برای همه مؤلفه های مسیر به پرونده صحیح نیاز دارد ، می تواند آن را از metadata. name یا آخرین مؤلفه مسیر هر ورودی metadata. path_display مربوطه دریافت کند.
Dropbox از OAUTH 2. 0 برای مجوز درخواست API پشتیبانی می کند. در راهنمای OAuth ما اطلاعات بیشتری کسب کنید. درخواست های مجاز به API باید از یک عنوان مجوز با حامل ارزش استفاده کند ، جایی که یک نشانه دسترسی از طریق جریان OAUTH به دست می آید.
توجه: OAUTH یک پروتکل مجوز است ، نه یک پروتکل احراز هویت. اگر به دنبال استفاده از Dropbox به عنوان ارائه دهنده هویت هستید ، راهنمای Dropbox OpenID Coect را بررسی کنید.
این جریان مجوز OAUTH 2. 0 را شروع می کند. این یک تماس API نیست - این صفحه وب است که به کاربر اجازه می دهد تا به Dropbox وارد شود و برنامه شما را مجاز کند. بعد از اینکه کاربر تصمیم گرفت برنامه شما را مجوز دهد یا خیر ، آنها به URI مشخص شده توسط Redirect_URI هدایت می شوند.
OAUTH 2. 0 از سه جریان مجوز پشتیبانی می کند:
برای کسب اطلاعات بیشتر در مورد جریان کد و توکن ، به بخش 1. 3 مشخصات OAUTH 2 مراجعه کنید. برای اطلاعات بیشتر در مورد پسوند PKCE ، به RFC 7636 مراجعه کنید
برنامه شما باید کاربر را به این صفحه مجوز برنامه در مرورگر سیستم خود ارسال کند که مجوزهای اعطا شده را نشان می دهد. اگر کاربر قبلاً به وب سایت Dropbox وارد نشده باشد ، از آنها خواسته می شود این کار را در این صفحه وب انجام دهند. این صفحه وب نباید در یک نمای وب نمایش داده شود. این امر به منظور حفظ سازگاری با وب سایت و رعایت سیاست Google در برابر پردازش جریان OAUTH آنها در یک نمای وب ، برای پشتیبانی از کاربرانی که با استفاده از حساب های Google خود وارد Dropbox می شوند. در مورد نیازهای سیستم Dropbox.com اطلاعات کسب کنید.
توجه: این تنها مرحله ای است که به یک نقطه پایانی در www. dropbox.com نیاز دارد. تمام درخواست های API دیگر از طریق api. dropboxapi.com، content. dropboxapi.com یا notify. dropboxapi.com انجام می شود.
روش GET مثال
مثال: URL تأیید برای جریان کد
مثال: URL تأیید برای جریان کد با نوع دسترسی رمز آفلاین
مثال: URL تأیید برای جریان کد PKCE
redirect_uri رشته؟پس از تکمیل مجوز، کاربر را به کجا هدایت کنیم. این باید دقیقاً URI ثبت شده در App Console باشد. حتی "localhost" در صورت استفاده برای آزمایش باید لیست شود. همه URI های تغییر مسیر باید HTTPS باشند به جز URI های میزبان محلی. یک URI تغییر مسیر برای جریان توکن مورد نیاز است، اما برای جریان کد اختیاری است. اگر URI تغییر مسیر حذف شود، کد مستقیماً به کاربر ارائه می شود و از آنها دعوت می شود اطلاعات را در برنامه شما وارد کنند.
رشته دامنه؟این پارامتر به کاربر اجازه می دهد تا زیرمجموعه ای از محدوده های انتخاب شده در App Console را مجاز کند. چندین محدوده با یک فاصله از هم جدا می شوند. اگر این پارامتر حذف شود، صفحه مجوز تمام محدوده های انتخاب شده در برگه مجوزها را درخواست می کند. درباره دامنه ها در راهنمای OAuth بخوانید.
include_granted_scopes رشته؟این پارامتر اختیاری است. اگر روی user تنظیم شود، Dropbox دامنه های درخواستی فعلی و همچنین تمام محدوده های کاربری قبلاً اعطا شده را به کاربر برمی گرداند. اگر روی تیم تنظیم شود، Dropbox محدوده های درخواستی فعلی و همچنین تمام محدوده های تیمی که قبلاً به تیم داده شده است را برمی گرداند. اگر این پارامتر ارائه شود اما روی کاربر یا تیم تنظیم نشده باشد، یا اگر روی کاربر تنظیم شده باشد اما محدوده شامل محدوده تیم باشد، یا اگر روی تیم تنظیم شده باشد اما کاربر مجوزدهنده مدیر تیم نباشد، درخواست شکست خواهد خورد. اگر تنظیم نشود، Dropbox فقط محدوده های درخواست شده در پارامتر scope را برمی گرداند.
token_access_type رشته؟اگر این پارامتر روی آفلاین تنظیم شود، پس بار توکن دسترسی که با یک تماس موفقیت آمیز /oauth2/token بازگردانده می شود، حاوی یک access_token کوتاه مدت و یک refresh_token طولانی مدت است که می تواند برای درخواست یک نشانه دسترسی کوتاه مدت جدید استفاده شود. به عنوان تایید یک کاربر معتبر باقی می ماند. اگر روی آنلاین تنظیم شود، فقط یک access_token کوتاه مدت برگردانده می شود. اگر حذف شود، این پارامتر به طور پیش فرض روی حالت آنلاین است.
حالت رشته؟حداکثر 500 بایت داده دلخواه که به URI تغییر مسیر شما بازگردانده می شود. این پارامتر باید برای محافظت در برابر جعل درخواست بین سایتی (CSRF) استفاده شود. به بخش های 4. 4. 1. 8 و 4. 4. 2. 5 مشخصات مدل تهدید OAuth 2. 0 مراجعه کنید.
Code_Challenge String؟ (min_l طول = 43 ، max_l طول = 128) بخشی از جریان PKCE ، چالش باید یک مقدار رمزگذاری شده SHA-256 (S256) یک رشته باشد که به عنوان Code_Verifer از تماس مربوطه /OAUTH2 /TOKEN خدمت می کند. همچنین می تواند به ساده (ساده) تنظیم شود.
code_challenge_method رشته؟روش Code Challenge را تعریف می کند. می توان روی S256 (توصیه شده) یا ساده تنظیم کرد.
نیاز به رشته_پلیک؟در صورت مشخص شدن این پارامتر ، از کاربر خواسته می شود با یک نوع خاص از حساب Dropbox ، یا برای یک حساب تیمی یا شخصی برای یک حساب شخصی کار کند. برنامه شما هنوز باید نوع حساب Dropbox را پس از مجوز تأیید کند زیرا کاربر می تواند پارامتر nead_role را اصلاح یا حذف کند.
Force_Reapprove Boolean؟این که آیا کاربر را مجبور به تأیید مجدد برنامه در صورت انجام این کار کند یا خیر. اگر نادرست (پیش فرض) باشد ، کاربر که قبلاً برنامه را تصویب کرده است ممکن است به طور خودکار به URI مشخص شده توسط Redirect_URI هدایت شود. در صورت صحت ، کاربر به طور خودکار هدایت نمی شود و مجدداً برنامه را تأیید می کند.
غیرفعال کردن boolean_ signup؟هنگامی که درست (پیش فرض نادرست است) کاربران قادر به ثبت نام در حساب Dropbox از طریق صفحه مجوز نخواهند بود. در عوض ، صفحه مجوز پیوندی به برنامه Dropbox iOS در فروشگاه App نشان می دهد. این فقط برای استفاده در صورت لزوم برای رعایت سیاست های فروشگاه App در نظر گرفته شده است.
رشته محلی؟اگر محلی مشخص شده یک زبان پشتیبانی شده باشد ، Dropbox کاربران را به نسخه ترجمه شده از وب سایت مجوز هدایت می کند. برچسب های محلی باید برچسب های زبان IETF باشند.
Force_Reauthentication Boolean؟اگر درست (پیش فرض نادرست باشد) کاربران در صورت ورود به سیستم امضا می شوند. این اطمینان حاصل می شود که کاربر به صفحه ای آورده شده است که می تواند یک حساب جدید ایجاد کند یا به حساب دیگری وارد شود. این فقط باید در شرایطی مورد استفاده قرار گیرد که دلیل مشخصی وجود داشته باشد تا باور داشته باشد که کاربر باید وارد یک حساب جدید یا متفاوت شود.
رشته سریع؟مشخص می کند که آیا کاربر باید برای تأیید مجدد یا رضایت از آن خواسته شود. اگر هیچ یک از کاربر با صفحه مجوز خواسته نشود. اگر کاربر قبلاً به برنامه اجازه نداده باشد ، این خطایی ایجاد می کند. در صورت ورود به سیستم ، از کاربر خواسته می شود قبل از مجوز برنامه دوباره وارد سیستم شوید. این معادل FORCE_REAUTHENTICATION = TRUE است. در صورت رضایت کاربر همیشه از مجوز خواسته می شود. این معادل FORCE_REAPPROVE = TRUE است. اگر یکی از این پارامترها با دیگری مغایرت داشته باشد ، ممکن است خطاها رخ دهد (به عنوان مثال: سریع = هیچ یک و force_reapprove = درست).
max_age uint64؟اگر آخرین زمان ورود به سیستم طولانی تر از زمان مشخص شده باشد (ثانیه) ، جلسه کاربر را تازه می کند.
صفحه نمایش OIDC ، preferred_locales و acr_values برای سازگاری پذیرفته می شوند اما غیر عملیاتی هستند.
از آنجا که /OAUTH2 /مجوز یک وب سایت است ، هیچ مقدار بازگشت مستقیم وجود ندارد. با این حال ، پس از مجاز بودن کاربر برنامه شما ، آنها به URI تغییر مسیر شما ارسال می شوند. نوع پاسخ بر اساس Response_Type متفاوت است.
این پارامترها در رشته پرس و جو (بعد از؟ در URL) منتقل می شوند:
رشته کد کد مجوز ، که می تواند برای دستیابی به نشانه حامل با تماس /OAUTH2 /TOKEN استفاده شود.
پاسخ نمونه
این پارامترها در قطعه URL (بعد از # در URL) منتقل می شوند.
توجه: به عنوان قطعات ، این پارامترها می توانند توسط کاربر اصلاح شوند و نباید از طرف سرور مورد اعتماد قرار گرفت. اگر هر یک از این قسمت ها از طرف سرور استفاده می شوند ، لطفاً از جریان PKCE استفاده کنید ، یا در عوض با استفاده از فیلدهای برگشتی از /get_current_account به جای آن استفاده کنید.
رشته uid کاهش یافته است. شناسه کاربر/تیم API V1. لطفاً به جای آن از Account_id استفاده کنید ، یا در صورت استفاده از API Dropbox Business ، team_id.
پاسخ نمونه
در هر یک از جریان ، اگر خطایی رخ دهد ، از جمله اگر کاربر تصمیم به مجاز بودن برنامه نداشته باشد ، پارامترهای زیر در URI تغییر مسیر گنجانده می شوند:
این نقطه پایانی فقط در مورد برنامه ها با استفاده از جریان کد مجوز اعمال می شود. هنگامی که کاربر اجازه برنامه را مجاز کرد ، یک برنامه با این نقطه پایانی برای به دست آوردن یک نشانه بلبرینگ تماس می گیرد.
تماس با /OAUTH2 /TOKEN باید با استفاده از کلید و راز برنامه ها تأیید شود. این موارد یا به عنوان پارامترهای ارسال شده/x-www-form-urlencoded منتقل می شوند (به پارامترهای زیر مراجعه کنید) یا از طریق تأیید هویت اساسی HTTP. در صورت استفاده از احراز هویت اساسی ، کلید برنامه باید به عنوان نام کاربری ارائه شود و راز برنامه باید به عنوان رمز عبور ارائه شود.
روش ساختار URL مثال ارسال
مثال: درخواست TOKEN ACCESS در جریان کد
مثال: درخواست توکن را تازه کنید
مثال: درخواست توکن جریان کد PKCE
Grant_Type String نوع کمک هزینه ، که باید برای تکمیل یک جریان کد یا Refresh_token برای استفاده از یک نشانه تازه برای دریافت یک نشانه دسترسی جدید ، مجوز_ کد باشد.
رشته refresh_token؟یک نشانه منحصر به فرد و طولانی مدت که می تواند برای درخواست نشانه های دسترسی کوتاه مدت جدید بدون تعامل مستقیم کاربر در برنامه شما استفاده شود.
string client_id؟اگر اعتبارنامه در پارامترهای پست منتقل شود ، این پارامتر باید موجود باشد و باید کلید برنامه باشد (در کنسول برنامه یافت می شود).
string client_secret؟اگر اعتبارنامه در پارامترهای پست منتقل شود ، این پارامتر باید موجود باشد و باید راز برنامه باشد.
رشته redirect_uri؟در صورت ارائه ، URI تغییر مسیر برای دریافت کد مجوز از /oauth2 /مجوز استفاده می شود. فقط برای اعتبار سنجی آن استفاده می شود با URI تغییر مسیر عرضه شده به /oauth2 /مجاز به کد مجوز فعلی. از آن برای تغییر مسیر دوباره استفاده نمی شود.
رشته code_verifier؟ (min_l طول = 43 ، max_l طول = 128) رشته تولید شده توسط مشتری که برای تأیید رمزگذاری شده کد_چالنژ استفاده شده در URL مجوز استفاده می شود.
این نقطه پایانی یک فرهنگ لغت رمزگذاری شده JSON را شامل می شود که شامل زمینه های زیر است:
رشته refresh_token اگر token_access_type هنگام تماس /OAUTH2 /مجوز به صورت آفلاین تنظیم شده است ، سپس پاسخ شامل یک نشانه تازه می شود. این نشانه تازه مدت طولانی است و به طور خودکار منقضی نمی شود. می توان چندین بار ذخیره و دوباره استفاده کرد.
id_token رشته اگر درخواست شامل Scopes OIDC باشد و در جریان پاسخ_ type = جریان باشد ، پس از بارگذاری شامل ID_Token است که یک نشانه JWT است.
پاسخ نمونه
مثال: نشانه کوتاه مدت
مثال: نشانه دسترسی کوتاه مدت "آفلاین"
مثال: نشانه میراث
مثال: درخواست OIDC
برای به دست آوردن یک نشانه دسترسی جدید از Token Refresh استفاده کنید. این درخواست یک نشانه تازه تازه را برنمی گرداند زیرا نشانه های تازه به طور خودکار منقضی نمی شوند و می توانند به طور مکرر مورد استفاده مجدد قرار گیرند.
خطاها با استفاده از نحو کد خطای HTTP استاندارد بازگردانده می شوند. بسته به کد وضعیت ، بدنه پاسخ ممکن است در JSON یا متن ساده باشد.
| رمز | شرح |
|---|---|
| 400 | پارامتر ورودی بد. بدنه پاسخ یک پیام ساده با اطلاعات بیشتر است. |
| 401 | نشانه بد یا منقضی شده. اگر نشانه دسترسی منقضی شود یا اینکه نشانه دسترسی توسط Dropbox یا کاربر ابطال شده است ، این اتفاق می افتد. برای رفع این مشکل ، باید کاربر را مجدداً تأیید کنید. |
خطاهایی در حین احراز هویت رخ داده است. این نوع داده از یک فضای نام وارد شده می آید که در ابتدا در فضای نام auth تعریف شده است. مقدار یکی از انواع داده های زیر خواهد بود. ممکن است با تکامل API ما مقادیر جدیدی معرفی شوند.
invalid_select_admin باطل کاربر مشخص شده در "Dropbox-API-Select-Admin" مدیر تیم Dropbox Business نیست.
خطا رخ داد زیرا حساب مجوز دسترسی به منبع را ندارد. این نوع داده از یک فضای نام وارد شده می آید که در ابتدا در فضای نام auth تعریف شده است. مقدار یکی از انواع داده های زیر خواهد بود. ممکن است با تکامل API ما مقادیر جدیدی معرفی شوند.
این نوع داده از یک فضای نام وارد شده می آید که در ابتدا در فضای نام auth تعریف شده است. مقدار یکی از انواع داده های زیر خواهد بود. ممکن است با تکامل API ما مقادیر جدیدی معرفی شوند.
این نوع داده از یک فضای نام وارد شده می آید که در ابتدا در فضای نام auth تعریف شده است. مقدار یکی از انواع داده های زیر خواهد بود. ممکن است با تکامل API ما مقادیر جدیدی معرفی شوند.
نوع محتوا پاسخ می تواند JSON یا متن ساده باشد. اگر JSON باشد، نوع RateLimitError خواهد بود. اطلاعات بیشتر را می توانید در راهنمای ورودی داده بیابید.
خطایی روی داد زیرا نرخ برنامه محدود شده است. این نوع داده از یک فضای نام وارد شده می آید که در ابتدا در فضای نام auth تعریف شده است.
این نوع داده از یک فضای نام وارد شده می آید که در ابتدا در فضای نام auth تعریف شده است. مقدار یکی از انواع داده های زیر خواهد بود. ممکن است با تکامل API ما مقادیر جدیدی معرفی شوند.
too_many_write_operations Void در حال حاضر عملیات نوشتن بسیار زیادی در Dropbox کاربر انجام می شود.
retry_after UInt64 تعداد ثانیه هایی که برنامه باید قبل از درخواست دیگر منتظر بماند. پیش فرض این فیلد 1 است.
آموزش مقدماتی فارکس...
برچسب :
نویسنده : علیرام نورایی
بازدید : <-PostHit->