راهنمای پیاده‌سازینسخهٔ ۱ فارسی

آموزش استفاده از API آی‌روم

با API آی‌روم می‌توانید در برنامهٔ خود اتاق جلسه ایجاد کنید، برای افراد دسترسی مهمان یا مدیر تعریف کنید و فایل‌ها و گزارش‌های هر جلسه را دریافت کنید. در این راهنما، مراحل ارسال درخواست، استفاده از پاسخ API و دریافت تغییرات بعدی را توضیح می‌دهیم.

سه نکته پیش از شروع

هر اتاق را می‌توان برای چند جلسه استفاده کرد. برای افزودن فرد به فهرست اعضای اتاق، به ایمیل حساب گوگل او نیاز دارید؛ ورود مهمان بدون حساب گوگل در حالت دسترسی آزاد امکان‌پذیر است. فایل‌ها و گزارش‌ها ممکن است بعد از پایان جلسه تکمیل شوند، بنابراین برنامهٔ شما باید تغییرات آن‌ها را نیز دریافت کند.

۰۲
پیش‌نیازها

دریافت کلید API و انتخاب لایسنس

در بخش API در تنظیمات حساب، یک کلید ایجاد و مقدار کامل آن را کپی کنید. این مقدار فقط هنگام ایجاد کلید نمایش داده می‌شود. کلید را در تنظیمات امن سرور، مثلاً در متغیر محیطی، ذخیره کنید و درخواست‌ها را از سرور برنامهٔ خود بفرستید. کلید نباید در کد مرورگر یا اپلیکیشن کاربر قرار بگیرد.

API KEY

کلید دسترسی به API

آی‌روم با این کلید حساب شما را شناسایی می‌کند. آن را در هدر Authorization بفرستید. کلید را کامل وارد کنید؛ عدد ابتدای آن و علامت | نیز بخشی از کلید هستند.

LICENCE KEY

شناسهٔ اشتراک API

لایسنس، اشتراک API شماست. شناسهٔ آن را به‌جای {licence} در آدرس درخواست قرار دهید. اتاقی که ایجاد می‌کنید به همان لایسنس تعلق دارد و مصرف آن در همان اشتراک محاسبه می‌شود. همراه این شناسه، ارسال کلید API نیز الزامی است.

اولین درخواست: فهرست لایسنس‌ها
curl 'https://iroom.live/api/v1/licences' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: application/json'

در آرایهٔ data، لایسنس موردنظر را انتخاب کنید. مقدار id آن، همان شناسه‌ای است که در آدرس درخواست‌های بعدی استفاده می‌کنید. مقدار is_usable باید true باشد تا بتوانید با اتاق‌ها و اطلاعات آن لایسنس کار کنید.

اگر فهرست لایسنس‌ها خالی است، ابتدا اشتراک API تهیه کنید. ایجاد کلید API به‌تنهایی باعث ایجاد یا فعال‌شدن اشتراک نمی‌شود.

در مثال‌ها، YOUR_API_KEY را با کلید کامل خود جایگزین کنید. عبارت‌هایی مانند {licence} و {room} محل قرار دادن شناسه هستند؛ آن‌ها را همراه با آکولاد حذف کنید و شناسهٔ دریافت‌شده از API را بنویسید.

۰۳
ایجاد و مدیریت اتاق

تفاوت اتاق و جلسه و نحوهٔ ایجاد اتاق

اتاق (Room) فضایی است که لینک ورود، اعضا و تنظیمات دسترسی آن را مدیریت می‌کنید. می‌توانید با همان لینک، در زمان‌های مختلف جلسه برگزار کنید. هر بار برگزاری، یک جلسهٔ جداگانه (Conference) محسوب می‌شود و شناسه، زمان شروع و پایان، فایل‌ها و گزارش‌های مربوط به خود را دارد.

برای مثال، یک اتاق برای جلسات هفتگی تیم ایجاد می‌کنید. جلسهٔ این هفته و جلسهٔ هفتهٔ بعد در همان اتاق برگزار می‌شوند، اما شناسه و گزارش حضور و غیاب آن‌ها جداست.

Roomیک اتاق، یک لینک وروداعضا و تنظیمات مشترک بین جلسات
جلسهٔ اولگزارش و فایل‌های مستقل
جلسهٔ دومگزارش و فایل‌های مستقل
جلسه‌های بعدی…با همان لینک اتاق
ساخت یک اتاق با دسترسی محدود
curl -X POST 'https://iroom.live/api/v1/licences/{licence}/rooms' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: YOUR_NEW_UUID' \
  -d '{
    "title": "Product weekly meeting",
    "client_reference": "team-product",
    "access_type": "restricted",
    "admins": ["organizer@gmail.com"],
    "artifacts": {
      "recording": true,
      "attendance_report": true
    }
  }'

برای ایجاد هر اتاق جدید، یک شناسهٔ یکتا با قالب UUID تولید کنید و آن را به‌جای YOUR_NEW_UUID در هدر Idempotency-Key قرار دهید. این هدر از ایجاد اتاق تکراری هنگام ارسال مجدد همان درخواست جلوگیری می‌کند.

اگر به‌دلیل قطع ارتباط پاسخی دریافت نکردید، درخواست را با همان مقدار هدر و همان بدنهٔ JSON دوباره بفرستید. برای ایجاد اتاق دیگری، مقدار جدیدی تولید کنید. فیلد اختیاری client_reference برای نگه‌داری شناسهٔ داخلی برنامهٔ شما، مثلاً شناسهٔ یک کلاس، است و جایگزین Idempotency-Key نمی‌شود.

SEQUENCE DIAGRAM

مراحل ایجاد اتاق و دریافت لینک ورود

مراحل ایجاد اتاق و دریافت لینک ورود سرور برنامهٔ شما درخواست ایجاد اتاق را به آی‌روم می‌فرستد. پس از دریافت پاسخ، لینک ورود را در اختیار کاربر قرار می‌دهد. کلید API همراه لینک برای کاربر ارسال نمی‌شود. رابط کاربری شما به سرور شما: درخواست ایجاد اتاق. سرور شما به API آی‌روم: درخواست ایجاد اتاق با هدرهای لازم. API آی‌روم به سرور شما: شناسه، لینک ورود و وضعیت اعضا. سرور شما به رابط کاربری شما: نمایش لینک ورود اتاق. رابط کاربری شما سرور شما API آی‌روم درخواست ایجاد اتاق درخواست ایجاد اتاق با هدرهای لازم شناسه، لینک ورود و وضعیت اعضا نمایش لینک ورود اتاق
سرور برنامهٔ شما درخواست ایجاد اتاق را به آی‌روم می‌فرستد. پس از دریافت پاسخ، لینک ورود را در اختیار کاربر قرار می‌دهد. کلید API همراه لینک برای کاربر ارسال نمی‌شود.
  • در پاسخ ایجاد اتاق، data.id شناسهٔ اتاق و data.join_url لینک ورود است. هر دو را ذخیره کنید. برای درخواست‌های بعدی از شناسهٔ اتاق استفاده کنید؛ کد موجود در لینک ورود جایگزین این شناسه نیست.
  • در درخواست ایجاد اتاق، می‌توانید ایمیل حداکثر چهار مدیر را در آرایهٔ admins بفرستید. پس از دریافت پاسخ، مقدار status هر فرد را در data.members بررسی کنید. فقط مقدار active به معنی فعال‌بودن عضویت اوست. اگر عضویت فعال نیست، جزئیات failure را نیز بخوانید.
  • برای دریافت فهرست جلسات یک اتاق، درخواست GET /licences/{licence}/rooms/{room}/conferences را ارسال کنید. شناسهٔ هر جلسه را برای دریافت گزارش همان جلسه نگه دارید. مسیرهایی که در این راهنما به‌صورت کوتاه نوشته شده‌اند، بعد از /api/v1 قرار می‌گیرند.
پس از پایان جلسه، می‌توان دوباره از همان اتاق استفاده کرد

درخواست POST /licences/{licence}/rooms/{room}/end-active-conference فقط جلسه‌ای را که در حال برگزاری است پایان می‌دهد. این درخواست، اتاق را حذف یا لینک ورود را غیرفعال نمی‌کند. افراد می‌توانند در زمان دیگری با همان لینک وارد شوند و جلسهٔ جدیدی برگزار کنند؛ البته لایسنس باید معتبر باشد و محدودیت‌های سرویس رعایت شود.

۰۴
عضویت و ورود

شرایط افزودن عضو و ورود بدون حساب گوگل

برای افزودن هر فرد به فهرست اعضای اتاق، چه با نقش مهمان و چه با نقش مدیر، باید ایمیل حساب گوگل او را ارسال کنید. آدرس Gmail قابل استفاده است. ایمیل سازمانی نیز در صورتی قابل استفاده است که به یک حساب گوگل تعلق داشته باشد. فرد باید با همان حساب وارد جلسه شود تا دسترسی تعیین‌شده برای او اعمال شود.

ورود کنترل‌شده

دسترسی محدود restricted

افرادی که به فهرست اعضای اتاق اضافه شده‌اند، با حساب خود مستقیماً وارد می‌شوند. ورود سایر افراد به تأیید مدیر جلسه نیاز دارد. اگر هنگام ایجاد اتاق نوع دسترسی را مشخص نکنید، همین حالت انتخاب می‌شود.

مناسب جلسات با فهرست اعضای مشخص
ورود با لینک

دسترسی آزاد open

هر فردی که لینک اتاق را داشته باشد می‌تواند وارد شود. مهمان برای ورود به حساب گوگل نیاز ندارد و لازم نیست پیش از جلسه از طریق API به فهرست اعضا اضافه شود.

مناسب حضور مهمان بدون حساب گوگل

برای فعال‌کردن دسترسی آزاد، هنگام ایجاد اتاق مقدار access_type را برابر open قرار دهید. برای تغییر اتاق موجود نیز همین مقدار را در بدنهٔ درخواست PATCH /licences/{licence}/rooms/{room} بفرستید.

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

عملیات متد و ادامهٔ مسیر اتاق بدنه
افزودن مهمان POST /members {"email":"guest@gmail.com"}
افزودن مدیر POST /admins {"email":"admin@gmail.com"}
تغییر نقش عضو PATCH /members/{member} {"role":"admin"} یا {"role":"guest"}

مسیر پایهٔ جدول: /api/v1/licences/{licence}/rooms/{room}. هر درخواست افزودن عضو فقط یک ایمیل می‌پذیرد. برای تغییر نقش، مقدار role باید admin یا guest باشد.

عضو اتاق با شرکت‌کنندهٔ جلسه متفاوت است

اضافه‌کردن فرد به فهرست members به معنی شرکت‌کردن او در جلسه نیست. برای بررسی حضور واقعی، گزارش attendance همان جلسه را با شناسهٔ آن دریافت کنید. ایمیل مهمانی که بدون حساب گوگل وارد شده است، ممکن است در گزارش موجود نباشد.

۰۵
دریافت فایل‌ها و گزارش‌ها

اطلاعات جلسات را به‌صورت منظم به‌روزرسانی کنید

ممکن است در اولین درخواست پس از پایان جلسه، فایل‌ها یا گزارش کامل حضور و غیاب هنوز آماده نباشند. آی‌روم این اطلاعات را به‌روزرسانی می‌کند و برنامهٔ شما باید نسخهٔ جدید آن‌ها را دریافت کند. بنابراین اگر پاسخ API خالی بود، فوراً نتیجه نگیرید که جلسه فایل یا شرکت‌کننده‌ای نداشته است.

این بررسی را فقط برای اولین جلسهٔ اتاق انجام ندهید. هر بار که در همان اتاق جلسهٔ دیگری برگزار شود، اطلاعات و گزارش‌های جدیدی به آن اضافه می‌شود. برای دریافت تغییرات می‌توانید از روش‌های زیر استفاده کنید:

در صفحهٔ جلسه

به‌روزرسانی هنگام مشاهده

شما میتوانید برای نمایش آخرین تغییرات و بروزرسانی های جلسات خود. اطلاعات را بصورت زنده از api های ما دریافت کنید و نمایش بدهید. با این روند اطلاعاتی در سمت شما ذخیره نخواهد شد.

در پس‌زمینه

بررسی دوره‌ای

در سرور خود یک کار زمان‌بندی‌شده تعریف کنید تا فهرست جلسات، فایل‌ها و گزارش‌ها را در فاصله‌های مشخص دریافت کند. فاصلهٔ درخواست‌ها باید با تعداد اتاق‌ها و سقف مجاز درخواست‌های API متناسب باشد.

پاسخ API، اطلاعاتی را نشان می‌دهد که در زمان درخواست در آی‌روم موجود است. درخواست‌های مکرر باعث نمی‌شوند فایل یا گزارش زودتر آماده شود. وب‌هوک نیز پس از ثبت تغییر در آی‌روم ارسال می‌شود؛ دریافت آن لزوماً هم‌زمان با پایان جلسه نیست.

SEQUENCE DIAGRAM

مراحل دریافت دوره‌ای اطلاعات جلسات

مراحل دریافت دوره‌ای اطلاعات جلسات در هر نوبت بررسی، فهرست جلسات اتاق را بگیرید و فایل‌ها و گزارش‌های موردنیاز را به‌روزرسانی کنید. بررسی اتاق را پس از پایان اولین جلسه متوقف نکنید؛ ممکن است بعداً جلسهٔ دیگری در آن برگزار شود. سرویس زمان‌بندی شما به API آی‌روم: درخواست فهرست جلسات اتاق. API آی‌روم به سرویس زمان‌بندی شما: فهرست جلسات و شناسهٔ هر جلسه. سرویس زمان‌بندی شما به API آی‌روم: درخواست فایل‌ها و گزارش‌ها. API آی‌روم به سرویس زمان‌بندی شما: اطلاعات موجود و نشانگر صفحهٔ بعد. سرویس زمان‌بندی شما به پایگاه دادهٔ شما: ذخیرهٔ اطلاعات جدید و به‌روزرسانی رکوردهای قبلی. سرویس زمان‌بندی شما به API آی‌روم: ارسال درخواست در زمان بررسی بعدی. سرویس زمان‌بندی شما API آی‌روم پایگاه دادهٔ شما درخواست فهرست جلسات اتاق فهرست جلسات و شناسهٔ هر جلسه درخواست فایل‌ها و گزارش‌ها اطلاعات موجود و نشانگر صفحهٔ بعد ذخیرهٔ اطلاعات جدید و به‌روزرسانی رکوردهای قبلی ارسال درخواست در زمان بررسی بعدی
در هر نوبت بررسی، فهرست جلسات اتاق را بگیرید و فایل‌ها و گزارش‌های موردنیاز را به‌روزرسانی کنید. بررسی اتاق را پس از پایان اولین جلسه متوقف نکنید؛ ممکن است بعداً جلسهٔ دیگری در آن برگزار شود.
دادهٔ موردنیاز ادامهٔ مسیر اتاق برای درخواست GET ملاحظه
فهرست جلسات اتاق /conferences هر جلسه شناسهٔ جداگانه دارد
فایل‌ها و خروجی‌ها /artifacts ارتباط با جلسه از طریق conference_id
حضور و غیاب /conferences/{conference}/attendance بررسی attendance_synced_at در اطلاعات جلسه
گزارش رویدادهای جلسه /conferences/{conference}/audit-events دریافت همهٔ صفحات گزارش
  • ممکن است پاسخ در چند صفحه ارائه شود. مقدار meta.next_cursor را در پارامتر cursor درخواست بعدی بفرستید. این کار را تا زمانی ادامه دهید که مقدار آن null شود. در نوبت بعدیِ بررسی دوره‌ای، دوباره از صفحهٔ اول شروع کنید؛ cursor فقط برای ادامهٔ صفحه‌بندی است.
  • شناسهٔ هر فایل و جلسه را در پایگاه دادهٔ خود ذخیره کنید و مشخص کنید به کدام اتاق و لایسنس تعلق دارد. اگر اطلاعات همان شناسه را دوباره دریافت کردید، رکورد قبلی را به‌روزرسانی کنید؛ رکورد جدید نسازید.
  • وضعیت فایل در فیلد status مشخص می‌شود: pending یعنی هنوز آماده نیست، available یعنی در دسترس است، expired یعنی مهلت نگه‌داری آن تمام شده و removed یعنی حذف شده است. زمان انقضا را از expires_at و زمان آخرین به‌روزرسانی اطلاعات فایل را از synced_at بخوانید.
  • لینک مشاهدهٔ فایل در view_url قرار دارد. بازشدن این لینک به مجوز دسترسی کاربر به همان فایل بستگی دارد؛ دسترسی آزاد اتاق به معنی عمومی‌بودن فایل‌ها نیست. مقدار download_url نیز ممکن است null باشد، پس همیشه وجود لینک دانلود را فرض نکنید.
  • اگر در اطلاعات جلسه، مقدار attendance_synced_at برابر null است، گزارش حضور و غیاب هنوز دریافت نشده است. در این وضعیت، صفر بودن تعداد شرکت‌کنندگان به معنی خالی‌بودن جلسه نیست.
۰۶
اعلان تغییرات

دریافت اعلان تغییرات با وب‌هوک

با فعال‌کردن وب‌هوک، آی‌روم تغییرات انتخاب‌شده را به سرور شما اطلاع می‌دهد. این اعلان به‌صورت یک درخواست POST با بدنهٔ JSON به آدرسی ارسال می‌شود که در تنظیمات ثبت کرده‌اید.

هر اعلان که در ادامه «رویداد» نامیده می‌شود، نوع تغییر و شناسهٔ اطلاعات مرتبط را دارد. برای مثال، رویداد report.updated مشخص می‌کند گزارش کدام جلسه تغییر کرده است، اما ردیف‌های گزارش را ارسال نمی‌کند. سرور شما باید پس از دریافت رویداد، گزارش آن جلسه را با یک درخواست جداگانه از API بگیرد.

  1. در سرور خود مسیر دریافت وب‌هوک ایجاد کنید.

    این مسیر باید درخواست POST با بدنهٔ JSON را بپذیرد و از اینترنت، با HTTPS روی پورت ۴۴۳، در دسترس باشد. نمی‌توانید از آدرس شبکهٔ داخلی یا localhost استفاده کنید. آدرس ثبت‌شده باید مستقیماً پاسخ بدهد و نباید درخواست را به آدرس دیگری هدایت کند.

  2. آدرس و رویدادهای موردنظر را در پنل ثبت کنید.

    در بخش وب‌هوک‌ها در تنظیمات حساب، روی «افزودن وب‌هوک» بزنید. آدرس دریافت را وارد کنید، لایسنس‌ها و رویدادهایی را که می‌خواهید دنبال کنید انتخاب کنید و وب‌هوک را فعال کنید.

  3. اتصال را آزمایش کنید.

    در پنل، از بخش «آزمایش اتصال» یک رویداد آزمایشی ارسال کنید و نتیجه را در «سوابق ارسال» ببینید. در این رویداد مقدار is_test برابر true است. شناسه‌های آن نمونه هستند؛ دریافت و پاسخ‌دادن به درخواست را بررسی کنید، اما با این شناسه‌ها برای گرفتن فایل، عضو یا گزارش به API درخواست نفرستید.

  4. اطلاعات موجود را یک‌بار از API بگیرید.

    وب‌هوک فقط تغییرات مرتبط پس از ثبت و فعال‌سازی را ارسال می‌کند. برای دریافت اطلاعات قبلی، پس از فعال‌سازی وب‌هوک، فهرست جلسات، فایل‌ها و گزارش‌های موجود را از API بگیرید. هم‌زمان، دریافت رویدادهای جدید را نیز ادامه دهید.

بررسی توکن در درخواست وب‌هوک

در حال حاضر آی‌روم همراه وب‌هوک، هدر امضا ارسال نمی‌کند. برای محدودکردن دسترسی به مسیر دریافت، یک توکن محرمانه، تصادفی و مخصوص وب‌هوک بسازید. آن را در مسیر آدرس یا پارامتر آدرس، مثلاً ?token=YOUR_WEBHOOK_TOKEN، قرار دهید. سرور شما باید پیش از پذیرش درخواست، مقدار این توکن را بررسی کند.

این توکن باید با کلید API آی‌روم متفاوت باشد. آدرس کامل وب‌هوک در تنظیمات و سوابق ارسال حساب نمایش داده می‌شود؛ آن را همراه توکن در لاگ‌های عمومی ثبت نکنید.

SEQUENCE DIAGRAM

مراحل دریافت و پردازش وب‌هوک

مراحل دریافت و پردازش وب‌هوک پس از بررسی توکن، رویداد را در پایگاه داده یا صفی ذخیره کنید که با توقف برنامه اطلاعاتش از بین نرود. سپس پاسخ موفق بدهید. دریافت اطلاعات از API و به‌روزرسانی پایگاه داده را در پردازش پس‌زمینه انجام دهید. آی‌روم به سرور دریافت وب‌هوک: ارسال رویداد به آدرس وب‌هوک. سرور دریافت وب‌هوک به پردازشگر برنامهٔ شما: بررسی توکن و ذخیرهٔ رویداد در صف. سرور دریافت وب‌هوک به آی‌روم: پاسخ موفق 2xx. پردازشگر برنامهٔ شما به آی‌روم: درخواست اطلاعات جدید با کلید API. آی‌روم به پردازشگر برنامهٔ شما: پاسخ شامل اطلاعات جدید. آی‌روم سرور دریافت وب‌هوک پردازشگر برنامهٔ شما ارسال رویداد به آدرس وب‌هوک بررسی توکن و ذخیرهٔ رویداد در صف پاسخ موفق 2xx درخواست اطلاعات جدید با کلید API پاسخ شامل اطلاعات جدید
پس از بررسی توکن، رویداد را در پایگاه داده یا صفی ذخیره کنید که با توقف برنامه اطلاعاتش از بین نرود. سپس پاسخ موفق بدهید. دریافت اطلاعات از API و به‌روزرسانی پایگاه داده را در پردازش پس‌زمینه انجام دهید.
رویداد معنی اقدام سرویس شما
artifact.available فایل در دسترس قرار گرفته است دریافت /artifacts/{artifact_id}
artifact.updated اطلاعات یا وضعیت فایل تغییر کرده است دریافت وضعیت جدید فایل و ثبت تغییر در برنامه
report.updated گزارش جلسه به‌روزرسانی شده است بر اساس report_type، دریافت attendance یا audit-events
room.member.updated عضو، نقش یا وضعیت عضویت تغییر کرده است دریافت اطلاعات عضو از /members/{member_id} یا دریافت فهرست اعضا

در رویداد report.updated، اگر report_type برابر attendance بود، گزارش حضور و غیاب را از مسیر attendance بگیرید. اگر مقدار آن audit_log بود، از مسیر audit-events استفاده کنید. هر دو مسیر زیرمجموعهٔ جلسهٔ مشخص‌شده در conference_id هستند.

در حال حاضر وب‌هوک جداگانه‌ای برای ایجاد اتاق یا پایان جلسه وجود ندارد. برای اطلاع از جلسات جدید، فهرست conferences اتاق را به‌صورت دوره‌ای دریافت کنید.

نمونهٔ بدنهٔ ورودی وب‌هوک
{
  "id": "d8e8e646-4caa-408b-8783-eef01eb7a93e",
  "type": "report.updated",
  "version": 1,
  "occurred_at": "2026-09-08T11:00:00+00:00",
  "is_test": false,
  "data": {
    "licence_key": "lic_0123456789abcdef",
    "room_id": "7031f075-4f99-43d1-85d4-8bbb8d26df48",
    "conference_id": "f9c9e28a-cf51-4600-a5c1-b0b91465c1e0",
    "report_type": "attendance"
  }
}

نحوهٔ پاسخ‌دادن و مدیریت ارسال‌های تکراری

  • ممکن است یک رویداد را چند بار دریافت کنید یا ترتیب دریافت با ترتیب وقوع تغییرات متفاوت باشد. مقدار id رویدادهای پردازش‌شده را در پایگاه داده نگه دارید تا یک رویداد دوباره پردازش نشود. در ارسال مجدد، شناسه و بدنه تغییر نمی‌کنند. این سابقه را دست‌کم سه ماه نگه دارید تا ارسال مجدد رویدادهای قدیمی هم باعث پردازش تکراری نشود.
  • پس از ذخیرهٔ رویداد، یک پاسخ HTTP با کد 2xx، مثلاً 200 یا 204، برگردانید. برای فرستادن این پاسخ منتظر تکمیل پردازش و دریافت گزارش نمانید. اگر نتوانستید رویداد را ذخیره کنید، پاسخ موفق ندهید؛ پس از دریافت پاسخ موفق، آی‌روم ارسال را انجام‌شده در نظر می‌گیرد.
  • اگر ارسال به‌دلیل خطای شبکه ناموفق باشد، یا سرور شما کد 408، 429، 500، 502، 503 یا 504 برگرداند، آی‌روم دوباره تلاش می‌کند. در هر دورهٔ ارسال، حداکثر ۱۰ تلاش انجام می‌شود که درخواست اول هم جزو آن‌هاست. برای سایر پاسخ‌های ناموفق، از جمله 3xx و 401، ارسال خودکار تکرار نمی‌شود.
  • اگر ارسال ناموفق شد، ابتدا مشکل سرور دریافت را برطرف کنید. سپس در بخش «سوابق ارسال»، جزئیات درخواست را ببینید و روی «ارسال مجدد» بزنید. وب‌هوک باید فعال باشد. خطاهای زیاد ممکن است باعث غیرفعال‌شدن خودکار وب‌هوک شوند؛ در این حالت، پس از رفع مشکل آن را دوباره فعال کنید.
  • ممکن است پس از رویداد حذف، درخواست دریافت همان عضو یا فایل پاسخ 404 بدهد. نوع رویداد و آخرین فهرست اعضا یا فایل‌ها را بررسی کنید. اگر مورد حذف شده است، اطلاعات ذخیره‌شده در برنامهٔ خود را اصلاح کنید و درخواست دریافت آن را مرتب تکرار نکنید.
۰۷
راهنمای خواندن مستندات

نحوهٔ استفاده از مستندات API ما

در مستندات API ما، برای هر عملیات، آدرس درخواست، متد HTTP، ورودی‌های لازم و ساختار پاسخ نوشته شده است. می‌توانید مستندات را بدون ورود به حساب بخوانید. برای ارسال درخواست از داخل مستندات، باید کلید API معتبر وارد کنید.

  1. عملیات موردنظر را پیدا کنید.

    ابتدا بخش لایسنس‌ها را باز کنید و درخواست دریافت فهرست را ببینید. سپس به بخش اتاق‌ها، اعضا، جلسات یا فایل‌ها بروید. هر عملیات با ترکیب متد، مانند GET یا POST، و آدرس درخواست مشخص می‌شود.

  2. پارامترها و بدنهٔ درخواست را آماده کنید.

    در بخش پارامترهای مسیر (Path parameters)، شناسهٔ لایسنس، اتاق یا جلسه را وارد کنید. پارامترهای صفحه‌بندی در بخش Query parameters قرار می‌گیرند. برای ایجاد یا ویرایش، بخش بدنهٔ درخواست (Request body) را ببینید. ساختار داده (Schema) مشخص می‌کند هر فیلد چه نوعی دارد، چه مقادیری می‌پذیرد و آیا ارسال آن الزامی است.

  3. کلید API را در بخش احراز هویت وارد کنید.

    در قسمت احراز هویت (Authentication)، مقدار کامل کلید را وارد کنید. در این قسمت فقط خود کلید لازم است؛ ابزار مستندات کلمهٔ Bearer را به هدر اضافه می‌کند. اگر درخواست را در برنامهٔ خود می‌سازید، هدر را به‌صورت Authorization: Bearer YOUR_API_KEY ارسال کنید.

  4. درخواست را اجرا و پاسخ را بررسی کنید.

    می‌توانید نمونهٔ cURL یا کد زبان موردنظر را کپی و مقادیر نمونه را با اطلاعات خود جایگزین کنید. پیش از اجرا، هدرهای الزامی را بررسی کنید؛ برای ایجاد اتاق، Idempotency-Key هم لازم است. سپس کد وضعیت HTTP و بدنهٔ پاسخ را با توضیحات مستندات مقایسه کنید.

    درخواست‌هایی که از داخل مستندات اجرا می‌کنید واقعی هستند؛ مثلاً درخواست ایجاد اتاق، در حساب شما اتاق ایجاد می‌کند. برای شروع، درخواست خواندنیِ دریافت فهرست لایسنس‌ها را اجرا کنید.

  5. تعریف API را در ابزار توسعه وارد کنید.

    فایل OpenAPI JSON شامل تعریف مسیرها، ورودی‌ها و پاسخ‌های API است. می‌توانید آن را در ابزاری مانند Postman وارد کنید تا درخواست‌ها بر اساس این تعریف ساخته شوند. کلید API در این فایل قرار ندارد و باید آن را جداگانه در ابزار تنظیم کنید.

OUR API DOCUMENTATIONآدرس درخواست‌ها، ساختار داده‌ها و مثال‌هاباز کردن مستندات API ما
۰۸
نکات پیاده‌سازی

مدیریت خطاها و نمایش اطلاعات

وضعیت HTTP اقدام پیشنهادی
401 / 403 معتبر بودن کلید API و اجازهٔ دسترسی آن به اطلاعات درخواستی را بررسی کنید. قبل از ارسال مجدد، مشکل احراز هویت یا دسترسی را برطرف کنید.
404 شناسه‌های آدرس را بررسی کنید. اتاق باید متعلق به لایسنس مشخص‌شده باشد و فایل، عضو یا جلسه نیز باید به همان اتاق تعلق داشته باشد. ممکن است مورد درخواستی حذف شده باشد.
409 درخواست با وضعیت فعلی اطلاعات سازگار نیست. جزئیات error.code را بخوانید. اگر خطا مربوط به تکرار درخواست ایجاد اتاق است، مقدار Idempotency-Key و بدنهٔ درخواست را با درخواست اولیه مقایسه کنید.
422 یک یا چند ورودی معتبر نیست. در error.details ببینید کدام فیلد رد شده است و مقدار آن را پیش از ارسال مجدد اصلاح کنید.
429 تعداد درخواست‌ها از سقف مجاز بیشتر شده است. اگر هدر Retry-After وجود دارد، زمان اعلام‌شده را رعایت کنید. تعداد درخواست‌های هم‌زمان را کاهش دهید و بین تلاش‌های بعدی فاصله بگذارید.
5xx یا قطع ارتباط درخواست را با تعداد تلاش محدود تکرار کنید و فاصلهٔ هر تلاش را بیشتر کنید. برای ایجاد اتاق، همان Idempotency-Key و بدنه را بفرستید. برای سایر عملیات تغییردهنده، ابتدا وضعیت فعلی را با درخواست دریافت اطلاعات بررسی کنید؛ ممکن است درخواست قبلی انجام شده باشد اما پاسخ آن به شما نرسیده باشد.

کد خطا و شناسهٔ درخواست را نگه دارید

در کد برنامه، نوع خطا را با error.code تشخیص دهید. متن message برای توضیح خطا به انسان است و نباید مبنای شرط‌های برنامه باشد. برای پیگیری مشکل، error.request_id یا هدر X-Request-ID را ذخیره کنید. کلید API را در لاگ ننویسید.

تاریخ‌ها و تعداد نتایج هر صفحه

تاریخ و ساعت در API با قالب ISO 8601 برگردانده می‌شود. اختلاف منطقهٔ زمانی موجود در مقدار را هنگام تبدیل در نظر بگیرید؛ سپس آن را با ساعت محلی و تاریخ جلالی نمایش دهید. فهرست‌ها به‌صورت پیش‌فرض ۲۰ نتیجه در هر صفحه دارند. با پارامتر per_page می‌توانید این تعداد را تا ۱۰۰ افزایش دهید.

در رابط کاربری، وضعیت اطلاعات را روشن نمایش دهید. برای فایلی که هنوز آماده نشده، پیام «در حال آماده‌سازی» مناسب است؛ فایل منقضی یا حذف‌شده باید وضعیت جداگانه داشته باشد. هنگام دریافت اطلاعات نیز نشان دهید که درخواست در حال انجام است و زمان آخرین دریافت موفق را نمایش دهید.