پرش به مستندات
SDK

مخاطبان

`contacts.list`، `get`، `create`، `update` و `delete`.

همهٔ متدها

usage.ts
const page = await openemail.contacts.list({ limit: 100 })  const contact = await openemail.contacts.get('[email protected]')   const saved = await openemail.contacts.create({    email: '[email protected]',    name: 'Grace Hopper',    notes: 'Met at the compiler workshop',  })   await openemail.contacts.update(saved.email, { notes: null })  await openemail.contacts.delete(saved.email)   console.log(page.items.length, page.hasMore, contact.source, contact.lastSeenAt)

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

دفترچه به فضای کاری تعلق دارد نه به یک نفر، پس مخاطبی که هر عضوی ذخیره کند همان مخاطبی است که هر عضو و هر کلید می‌بیند. create مقدار source را manual می‌نویسد و مخاطب را همان لحظهٔ نوشتن در audience پیش‌فرض می‌گذارد. فهرست‌های خودتان را در audienceIds نام ببرید تا در همان فراخوانی به آن‌ها بپیوندد، که به audiences:write هم نیاز دارد، یا مخاطب را بعداً با openemail.audiences.addContact اضافه کنید.

آدرس‌ها با حروف کوچک ذخیره می‌شوند و کلاینت آدرسی را که می‌دهید encode می‌کند، پس [email protected] به ردیف درست می‌رسد. آدرس همان هویت است، پس update نمی‌تواند آن را تغییر دهد: جابه‌جاکردن یک مخاطب یعنی یک delete و یک create.

پارامترها: contacts.list

limitnumber
در هر صفحه چند مخاطب برگردد: عددی صحیح از 1 تا 200 با پیش‌فرض 50. مقدار تبدیل نوع می‌شود، پس `'100'` که از یک رشتهٔ پرس‌وجو می‌آید مشکلی ندارد، و مقدار بیرون از این بازه به‌جای محدودشدن، 422 است.
cursorstring
مقدار `nextCursor` از صفحهٔ پیشین. هرگز خودتان یکی نسازید: cursor ای که مخاطبی را نام ببرد که دیگر وجود ندارد 400 `invalid_cursor` است، یعنی وضعیت صفحه‌بندی شما کهنه است و پیمایش باید بدون cursor از نو آغاز شود.
sourceContactSource
`'manual'` برای مخاطبانی که کسی عمداً ذخیره کرده، و `'auto'` برای آن‌هایی که نویسندهٔ برنامه ثبت کرده است. برای کل دفترچه آن را ندهید.

پاسخ: ContactResource

contacts.list به یک Page<ContactResource> می‌رسد، پس ردیف‌ها روی page.items هستند و پیمایش تا وقتی page.hasMore درست است page.nextCursor را دنبال می‌کند. get، create و update هرکدام به یک ContactDetailResource می‌رسند، همان ردیف به‌علاوهٔ audiences. دفترچهٔ نشانی‌ها بی‌کران است، و به همین دلیل این مسیر صفحه‌بندی می‌کند به‌جای آنکه آرایه‌ای بازگرداند که بی‌صدا در 200 ردیف متوقف شده است.

object'contact'
همیشه رشتهٔ `contact`، هم روی ردیف‌های فهرست و هم روی `get`.
emailstring
آدرس، که هنگام نوشتن با حروف کوچک ذخیره می‌شود تا `[email protected]` و `[email protected]` یک مخاطب باشند، و همان کلیدی که هر متد contacts می‌گیرد، چون هیچ id ای برای مخاطب آشکار نمی‌شود. ردیف‌ها به فضای کاری تعلق دارند نه به عضو یا کلیدی که آن‌ها را نوشته، پس هر عضو و هر کلید روی فضای کاری یک دفترچهٔ نشانی واحد را می‌خواند و می‌نویسد.
namestring | null
نام نمایشی. وقتی هرگز نامی برای آن آدرس ثبت نشده باشد null است. نوشتن خودکار تنها وقتی نامی را حمل می‌کند که سرآیند چیزی جز خود آدرس داده باشد، و هرگز نمی‌تواند نامی را که کاربر تایپ کرده بازنویسی کند.
source'manual' | 'auto' | (string & {})
`auto` یعنی ردیف به این دلیل نوشته شده که کاربر به آن آدرس ایمیل فرستاده است؛ `manual` یعنی کسی آن را دستی وارد کرده، که ادعایی به‌کلی متفاوت است، و یک upsert هرگز `manual` را به `auto` تنزل نمی‌دهد. رسیدن ایمیل از یک آدرس عمداً هیچ ردیفی نمی‌نویسد، پس کسی که فقط به شما نوشته اینجا نیست؛ این union باز می‌ماند چون این ستون متن آزاد با پیش‌فرض `manual` است.
notesstring | null
متن آزادی که کسی دربارهٔ این شخص نوشته، در برنامه یا از راه `update`، و هرگز تولیدشده نیست. وقتی کسی چیزی ننوشته باشد null است، و null صریح در `update` آن را پاک می‌کند.
lastSeenAtstring | null
ISO-8601 به وقت UTC، که هر بار عضوی از نویسندهٔ برنامه به آن آدرس ارسال کند جلو می‌رود، نه وقتی ایمیلی از آن می‌رسد که چیزی نمی‌نویسد. روی مخاطبی که با `create` ذخیره شده و هرگز به او ایمیلی نرفته null است، و این‌ها در ترتیب نزولی `lastSeenAt` که این مسیر برمی‌گرداند در انتها می‌آیند.
audiencesArray<ContactAudienceResource>
فقط روی `get`، `create` و `update`، و هرگز روی ردیف‌های فهرست. هر audience ای که مخاطب در آن است به‌صورت `{ id, name, builtin }`، از جمله audience پیش‌فرض. `builtin` روی audience ای که هر مخاطبی به آن تعلق دارد `default` است و روی audience ای که کسی ساخته null، پس به‌جای نام که هرکسی می‌تواند عوضش کند، روی آن شاخه بزنید.