رفتن به محتوا

سری جلسات

هر سری جلسه‌هایی را که به هم مربوط‌اند کنار هم نگه می‌دارد، مثلاً جلسه‌های هفتگی یک تیم. توکن به دو نوع سری می‌رسد:

  • سری‌هایی که ساخته‌اید: صاحبشان شما هستید و می‌توانید تغییرشان دهید؛
  • سری‌هایی که عضوشان شده‌اید: سری کس دیگری که به آن دعوت شده‌اید. جلسه‌های آماده‌اش را می‌خوانید، اما سری همچنان مال صاحب آن است.

تا وقتی سری‌ها در لُب خاموش‌اند، GET /series/readable فهرستی خالی برمی‌گرداند، بقیهٔ مسیرهای سری و ?seriesId= پاسخ 404 می‌گیرند و جلسه‌ای که با seriesId بفرستید به «آرشیو شخصی» شما می‌رود.

با series:read («خواندن» در گروه «سری‌ها»):

مسیر چه می‌دهد
GET /series/readable سری‌های شما: اول آن‌هایی که ساخته‌اید، بعد آن‌هایی که عضوشان هستید، هر گروه به ترتیب نام
GET /series/{id} یک سری: نام، پیش‌فرض‌ها، شیوهٔ عنوان‌گذاری جلسه‌ها، و شمار جلسه‌های آماده و زمان تازه‌ترین آن‌ها
GET /series/{id}/keyterms واژگان سری، فقط برای صاحب آن
Terminal window
curl https://app.lobbe.ai/api/v1/series/readable \
-H "Authorization: Bearer $LOBBE_TOKEN"
{
"schemaVersion": 1,
"items": [
{
"id": "SERIES_ID",
"name": "Product sync",
"role": "owner",
"meetingCount": 6,
"url": "https://app.lobbe.ai/series/SERIES_ID",
"meetingsUrl": "https://app.lobbe.ai/api/v1/recordings/ready?seriesId=SERIES_ID"
}
]
}
  • role در فهرست، و access در GET /series/{id}، یکی از owner یا member است.
  • meetingCount شمار جلسه‌های آماده‌ای از سری است که همین حالا می‌توانید بخوانید: دقیقاً همان‌هایی که meetingsUrl آن فهرست می‌کند. برنامه همهٔ جلسه‌های سری را، آماده یا نه، می‌شمارد، پس ممکن است عددش بیشتر باشد.
  • آنچه توکن هرگز از سری نمی‌بیند: اعضا، دعوت و فهرست ایمیل‌های آن. واژگان سری فقط از GET /series/{id}/keyterms می‌آید و آن هم هرگز واژگان خود حساب شما را ندارد، که کار account:read است.
  • سری ناشناخته، سری کس دیگر، سری‌ای که از آن کنار گذاشته شده‌اید، یا سری‌ای که عضوش هستید وقتی لُب عضویت در سری‌ها را خاموش کرده است: همه پاسخ یکسانی می‌گیرند، 404.

خود جلسه‌ها با recordings:read خوانده می‌شوند، نه با series:read. پارامتر seriesId را به فهرست جلسه‌های آماده، GET /recordings/ready، اضافه کنید؛ meetingsUrl همین کار را از پیش کرده است:

Terminal window
curl "https://app.lobbe.ai/api/v1/recordings/ready?seriesId=SERIES_ID" \
-H "Authorization: Bearer $LOBBE_TOKEN"
  • سری‌ای که عضوش هستید هم کار می‌کند. در جلسهٔ کامل هر کدام از جلسه‌هایش recording.access: "member" آمده است.
  • بدون seriesId فهرست فقط جلسه‌های خود شما را دارد و هرگز جلسه‌های سری‌ای را که عضوش هستید ندارد. پس اسکریپتی که «جلسه‌های تازه» را برمی‌دارد، خودبه‌خود شروع به برداشتن جلسه‌های همکارانتان نمی‌کند.
  • سری‌ای که نمی‌توانید بخوانید پاسخ 404 می‌گیرد، هرگز صفحه‌ای خالی.
  • جست‌وجو هم همین seriesId را می‌پذیرد.

با series:write («ساختن و ویرایش» در گروه «سری‌ها»):

Terminal window
curl https://app.lobbe.ai/api/v1/series \
-H "Authorization: Bearer $LOBBE_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "name": "Product sync" }'

POST /series با 201 و سری تازه پاسخ می‌دهد، به همان شکل GET /series/{id}. فقط name اجباری است:

فیلد پیش‌فرض چیست
name — نام سری
defaultKind MEETING نوعی که برنامه برای جلسه‌ای که در سری گذاشته می‌شود پیشنهاد می‌کند
defaultOutputLanguage MATCH زبان لُبی که برنامه برای آن پیشنهاد می‌کند
titleStyle SESSION با SESSION عنوان هر جلسه نام سری و تاریخ جلسه است و عنوان خود جلسه زیر آن می‌آید؛ با TOPIC هر جلسه عنوان خودش را نگه می‌دارد
dateCalendar AUTO تقویم آن تاریخ: AUTO از زبان لُب پیروی می‌کند، یا JALALI، یا GREGORIAN

defaultKind و defaultOutputLanguage مقدارهای آغازین برنامه‌اند. جلسه‌ای که با توکن می‌فرستید آن‌ها را نمی‌خواند: kind و outputLanguage را همراه خود جلسه بفرستید.

  • نام یک خط است. فاصله‌های پشت‌سرهم، از جمله شکستن خط و نویسهٔ تب، به یک فاصله تبدیل می‌شوند و فاصله‌های دو سر حذف می‌شوند. بعد نام باید ۱ تا ۶۰ نویسه باشد. هر نویسهٔ کنترلی دیگری پاسخ 400 VALIDATION می‌گیرد.
  • نام در هر حساب یکتاست و بزرگی و کوچکی حروف آن را متفاوت نمی‌کند. نامی که یکی از سری‌های شما از پیش دارد پاسخ 409 SERIES_NAME_TAKEN می‌گیرد.
  • هر حساب می‌تواند حداکثر ۵۰ سری داشته باشد. سری بعدی پاسخ 409 SERIES_LIMIT می‌گیرد.
  • PATCH /series/{id} همان فیلدها را می‌گیرد، دست‌کم یکی را. فیلدی که نفرستید مقدارش را نگه می‌دارد، و بدنهٔ خالی پاسخ 400 VALIDATION می‌گیرد.
  • PUT /series/{id}/keyterms واژگان سری را جایگزین می‌کند. کل فهرست را در keyterms می‌گیرد، و inheritAccountKeyterms را، یعنی این‌که واژگان حساب شما هم به کار برود یا نه («واژگان من هم به کار برود» در برنامه). هر دو اجباری‌اند. فهرست از همان قاعده‌های واژگان حساب پیروی می‌کند؛ واژگان را ببینید.
  • رونوشت جلسه‌ای که در سری گذاشته می‌شود اول با واژه‌های سری ساخته می‌شود، سپس، اگر inheritAccountKeyterms برابر true باشد، با واژه‌های حساب شما، تا سقف ۱۰۰ واژه در مجموع. جلسه‌ای که از واژگان استفاده کند هزینهٔ بیشتری دارد؛ چه چیزی دقیقه خرج می‌کند را ببینید. هر جلسه واژه‌هایی را نگه می‌دارد که با آن فرستاده شد، پس فهرست تازه فقط جلسه‌های بعدی را تغییر می‌دهد.

PATCH /series/{id} و هر دو مسیر واژگان برای صاحب سری‌اند. توکنِ عضو سری در این مسیرها پاسخ 404 می‌گیرد، همان پاسخی که یک غریبه می‌گیرد: سری‌ای که مال شما نیست 404 است، هرگز 403. GET /series/{id} به اعضا هم پاسخ می‌دهد.

جلسهٔ تازه را هنگام فرستادن، با seriesId، در یک سری بگذارید:

Terminal window
curl https://app.lobbe.ai/api/v1/recordings \
-H "Authorization: Bearer $LOBBE_TOKEN" \
-F "audio=@meeting.m4a;type=audio/mp4" \
-F seriesId=SERIES_ID
  • فقط سری‌ای که خودتان ساخته‌اید. سری‌ای که عضوش هستید، یا شناسه‌ای که لُب نمی‌شناسد، خطا نیست: جلسه به «آرشیو شخصی» شما می‌رود، یعنی جلسه‌هایی که در هیچ سری‌ای نیستند. برای این‌که ببینید جلسه کجا رفته، recording.series را در جلسهٔ کامل آن بخوانید، یا seriesId را در رویدادهایش.
  • واژگان سری به کار می‌رود، همان‌طور که بالاتر آمد. با -F useKeyterms=off رونوشت این جلسه بدون هیچ واژگانی ساخته می‌شود، و بدون هزینهٔ افزودهٔ آن.
  • توکن نمی‌تواند جلسه‌ای را که پیش‌تر فرستاده جابه‌جا کند: نه به یک سری، نه بیرون از آن و نه از یک سری به سری دیگر. این کار در خود برنامه انجام می‌شود. توکن در مسیرهای خود برنامه برای این کار پاسخ 401 TOKEN_NOT_ACCEPTED می‌گیرد.

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