x

مقدمه

بررسی واسط برنامه نویسی

واسط برنامه نویسی Donbaler کاملا" منطبق با Twitter's API طراحی و پیاده سازی شده که به شما این امکان را میدهد تا با ویرایش تنها آدرس برنامه های خود به Donbaler، از آنها استفاده کنید. API امکان دریافت اطلاعات، جستجو، مشاهده‌ی اطلاعات کاربران و در مجموع دریافت و ارسالِ تمامی عملیات اطلاعاتی از طریق برنامه‌ی شما با سایت را ایجاد می‌کند. همچنین API امکان ارسال پست، دیدگاه، حذف دیدگاه، ویرایش اطلاعات پروفایل، گروه ها، لیست علاقه مندی‌ها، مشاهده زنده‌ی ارسال‌ها و جستجوها، پیام‌های مستقیم و کار با اطلاعاتِ بانک اطلاعاتی Donbaler را فراهم می‌کند. API تحت استانداردهای برنامه نویسی مانند XML, RSS, JSON و Atom کار می‌کند.

تصدیقِ اطلاعات

برای کار با تمام بخش‌های Donbaler نیاز به تصدیقِ اطلاعات نمی‌باشد. تصدیق و بررسی اطلاعات در مواقعی همچون حذف، ویرایش، افزودن یک رکورد و خواندن اطلاعات شخصی کاربران مورد استفاده قرار می‌گیرد. تصدیقِ اطلاعات تنها در برخی از بخشها نیاز به ورود کاربر به سایت داشته که مواردی همچون ارسال پست و یا خواندنِ پست‌های شخصی را در بر می‌گیرد. این عملیات در بخش Client و توسط پروتکل OAuth (از نظر سطح دسترسی) بررسی میشود.

مکانیزم OAuth

http://apiwiki.twitter.com/Authentication

OAuth مکانیزمی است که به کاربر اجازه میدهد به داده های خود بدون نیاز به رمز عبور دسترسی داشته باشد. اطلاعات بیشتر در مورد OAuth را در oauth.net یا Hueniverse جستجو کنید. برای ایجاد سطح دسترسی توسط OAuth میتوانید یک برنامه در آدرس http://donbaler.com/api ایجاد نمایید. این دسترسی‌ها هیچوقت از بین نرفته و منقضی نمی‌شود. در صورتی که یک کاربر به برنامه‌ی خود دسترسی نداشته باشد میتواند یک کد دیگر دریافت نموده و در صورت عدم دسترسیِ مجدد، ممکن است آن برنامه توسط Donbaler مسدود شده باشد. لازم به ذکر است که یک برنامه در صورت نقضِ قوانین Donbaler در اجرا و خواندن داده‌ها مسدود خواهد شد و این دسترسی حتی با تغییر کدها ممکن نخواهد بود. برای ایجاد دسترسی مجدد باید با تیم مدیریت Donbaler هماهنگ نمایید.

بیشتر کاربران تنها برای خواندن ارسال‌ها از برنامه ها استفاده می‌کنند و تعداد کمی از آنها نیاز به ارسال پست دارند. OAuth بر طبق دسترسی گرانول، به برنامه ها سطوح دسترسیِ "فقط خواندنی" یا "خواندن و نوشتن" میدهد. ارسال اطلاعات توسط API، چه یک نام، چه اطلاعات یا ارسال پست، نیاز به ارسالِ HTTP دارد. هر متد API یک درخواست توسط پستِ HTTP برای "فقط خواندن" یا "خواندن و نوشتن" میفرستد.

برنامه‌های تحت دسکتاپ

http://apiwiki.twitter.com/Authentication

OAuth برای استفاده در برنامه های تحت دسکتاپ (Desktop Clients) استفاده شده که می‌توانید عملیات زیر را تحت کنترل بگیرد:

1- برنامه هایی که از OAuth/Request_Token استفاده می‌کنند، مستقیما" دستورها را به Donbaler ارسال می‌کنند.
2- درخواست مستقیم کاربر به OAuth/Authorize در Donbaler.
3- پس از اخذ تایید کاربر، یک کد 7 رقمی برای تصدیق در Donbaler دریافت میشود.
4- استفاده از این روش جهت ایجاد یک دسترسی مداوم برای کار با برنامه.
5- برنامه یک تاییدیه‌ی استفاده به کاربر در مرحله‌ی 4 ارسال می‌کند.
6- نرم افزار مقدار OAuth_Verifier را بازبینی کرده و برای ادامه کار پارامتر را به OAuth/Access_Token ارسال می‌کند و یک درخواست از Request_Token برای Access_Token می‌گیرد.
7- Donbaler عملیات استاندارد کد شده‌ی دیجیتالیِ Access_Token را توسط OAuth ایجاد می‌کند.

محدودیت‌ها

http://apiwiki.twitter.com/Rate-limiting

API بصورت پیشفرض در هر یک ساعت "150 درخواست" را به سمت سرویس دهنده ارسال می‌کند که این محدودیت از طریق حساب کاربری و آی‌پی کاربران اعمال میشود. این محدودیت‌ها شامل تمام درخواست‌ها توسط HTTP GET بوده و از روش HTTP POST برای ارسال داده به Donbaler به جهت بروزرسانی می‌باشد. لازم به ذکر است که محدودیتِ اعمال شده برای مقابله در برابر اسپمرها است.

هنگامی که نرم افزار شما برای یک کاربر محدود شود، خطای 404 را برای او ارسال میکند. عملیات محدودسازی توسط API برای کنترل راحت تر برنامه‌ها توسط سازنده، از یک ارسال استاندارد داده‌ها به شکل زیر استفاده می‌کند:

< hash>
< remaining> 150 </remaining>
< hourly-limit>150 </hourly-limit>
< reset-time> 7 </reset-time>
< /hash>

کدهای HTTP Status و خطاها

http://apiwiki.twitter.com/HTTP-Response-Codes-and-Errors

هر درخواست API یک کد HTTP برای هر درخواست ایجاد می‌کند که با کمک این کدها، API عملیاتِ داده‌ها را بررسی می‌کند.

200 OK : موفقیت آمیز !
304 Not Modified : داده‌ی جدیدی دریافت نشد.
400 Bad Request : درخواست ناموفق. (احتمالا" درخواست به مسیر اشتباه ارسال شده یا درخواست با محدودیت مواجه شده است)
401 Unauthorized : تصدیقِ دسترسی ناموفق بوده است.
403 Forbidden : درخواست پردازش شد، اما توسط سرویس دهنده رد شده است. (این کد زمانی استفاده میشود که یک درخواست محدود شده باشد)
404 Not Found : اشتباه بودن درخواست بخاطر نامعتبر بودنِ لینک یا وجود نداشتنِ کاربر
500 Internal Server Error : گاها" نمایش داده میشود. (این خطا مربوط به سرویس دهنده بهنگام وقوع مشکل در سرویس نمایش داده میشود)

کدهای منع کننده و پاسخ‌دهنده

http://apiwiki.twitter.com/Things-Every-De...per-Should-Know

دو پارامتر خاص در استفاده از واسط برنامه نویسیِ Donbaler وجود دارد:

Callback : فقط در هنگامی که یک درخواست با فرمت JSON ارسال شود مورد استفاده قرار میگیرد. (بعنوان مثال: &callback=myFancyFunction نتایج درخواست شما را برای myFancyFunction(...) ارسال کرده که فقط بصورت اعداد یا حروف لاتین ارسال شده و بقیه‌ی کاراکترها توسط سرویس دهنده نادیده گرفته میشود)

Suppress_Response_Codes : اگر این پارامتر را مشاهده کردید، تمام درخواست‌ها با کد 200 OK و بدون هیچ خطایی انجام شده است.

پیام‌های خطا

هنگامی که واسط برنامه نویسی Donbaler نمی‌تواند یک عملیات را پردازش کند، یک خطا به سرویس دهنده ارسال می‌کند. بطور مثال یک خطا در قالب XML میتواند به شکل زیر باشد:

<?xml version="1.0" encoding="UTF-8" ?>
< hash>
< request> /direct_messages/destroy/456.xml </request>
< error> No direct message with that ID found. </error>
</hash>