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

گروه‌های مخاطب

`audiences.list`، `get`، `create`، `update`، `delete`، `empty`، `growth`، `list_contacts`، `add_contact`، `add_contacts`، `import_contacts`، `remove_contact` و `remove_contacts`.

همهٔ متدها

audiences.py
from openemail import openemail audiences = openemail.audiences.list_all()everyone = next((audience for audience in audiences if audience['builtin'] == 'default'), None) created = openemail.audiences.create({    'name': 'Product updates',    'description': 'Customers who asked to hear about releases',})audience_id = created['id'] openemail.contacts.create({'email': '[email protected]', 'name': 'Grace Hopper'})openemail.audiences.add_contact(audience_id, {'email': '[email protected]'}) bulk = openemail.audiences.add_contacts(audience_id, {    'emails': ['[email protected]', '[email protected]'],}) imported = openemail.audiences.import_contacts(audience_id, {    'contacts': [{'email': '[email protected]', 'name': 'Katherine Johnson'}],}) members = openemail.audiences.list_all_contacts(    audience_id,    q='grace',    sort='added-newest',    limit=200,) growth = openemail.audiences.growth(audience_ids=[audience_id], days=30) openemail.audiences.update(audience_id, {'name': 'Release notes'})openemail.audiences.remove_contact(audience_id, '[email protected]')openemail.audiences.remove_contacts(audience_id, {'emails': ['[email protected]']})openemail.audiences.empty(audience_id)openemail.audiences.delete(audience_id) print(everyone['contactCount'] if everyone else None, bulk['missing'], imported['created'])print(len(members), growth['totals']['added'])

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

با openemail.broadcasts.send برای یک یا چند گروه مخاطب بفرستید، در صفحهٔ Broadcasts. گذاشتن مخاطب در گروه نوشتن روی گروه است نه روی مخاطب، پس audiences:write تنها دامنهٔ دسترسی است که بررسی می‌شود. import_contacts استثناست: مخاطب می‌سازد، پس contacts:write هم لازم دارد.

add_contact آدرسی را می‌گیرد که از پیش مخاطب است و آدرسی را که نیست با 422 contact_not_found رد می‌کند. نخست آن را با openemail.contacts.create ذخیره کنید. افزودن دوبارهٔ یک نفر با همان عضویتی که از پیش هست پاسخ می‌دهد و addedAt اصلی خود را حمل می‌کند، پس تکرار این فراخوانی بی‌خطر است.

audience پیش‌فرض را می‌توان مانند هر audience دیگری تغییر نام داد و توصیف کرد، اما نه می‌توان حذفش کرد و نه می‌توان از آن کم کرد. هر دو با 409 audience_immutable رد می‌شوند. وقتی می‌خواهید مخاطبی برود، خود مخاطب را حذف کنید.

پاسخ: AudienceResource

list یک صفحه از این‌ها برمی‌گرداند، دیکشنری‌ای با items، hasMore و nextCursor، با گروه مخاطب پیش‌فرض در ابتدا و بقیه به‌ترتیب تازه‌ترین، و list_all و iterate همهٔ صفحه‌ها را می‌پیمایند. get، create و update هرکدام یکی برمی‌گردانند. list_contacts به‌جای آن صفحه‌ای از AudienceContactResource برمی‌گرداند، یعنی خود مخاطبان با تاریخ پیوستن هرکدام، نه رکوردهای عضویت، و list_all_contacts و iterate_contacts کنار آن هستند.

idstr
دستگیرهٔ ماندگار، `aud_` و پس از آن 24 نویسهٔ hex. نام‌ها یکتا نیستند، پس همین است که باید در پیکربندی ذخیره‌شده بیاید.
namestr
هنگام نوشتن فاصله‌های اضافی حذف می‌شود، از 1 تا 120 نویسه. دو audience می‌توانند یک نام داشته باشند، چون audience با id خود آدرس‌دهی می‌شود.
descriptionstr | None
متن آزاد برای کسی که بعداً فهرست را می‌خواند. وقتی کسی چیزی ننوشته باشد `None` است، و `None` صریح در `update` آن را پاک می‌کند.
builtinAudienceBuiltin | str | None
`default` دقیقاً روی یک ردیف در هر فضای کاری، همان گروه مخاطبی که همهٔ مخاطبان را نگه می‌دارد، و `None` روی هر گروه مخاطبی که کسی ساخته باشد. نوع باز می‌ماند، با `str` در کنار مقدار literal، تا گروه درون‌ساختی که بعدها افزوده شود کدی را که با این نوع تایپ شده نشکند.
contactCountint
تعداد مخاطبان درون audience، که در لحظهٔ خواندن شمرده می‌شود نه از حافظهٔ نهان. دو خواندن در دو سوی یک `contacts.create` به‌اندازهٔ یک با هم اختلاف دارند.
lastContactAtstr | None
ISO-8601 به وقت UTC، زمانی که تازه‌ترین مخاطب به این گروه مخاطب پیوست. تا وقتی گروه خالی است `None` است.
createdAtstr
ISO-8601 به وقت UTC، زمان ساخته‌شدن audience. ترتیب فهرست را پس از audience پیش‌فرض تعیین می‌کند.
updatedAtstr
ISO-8601 به وقت UTC، که با تغییر نام یا تغییر توصیف جلو می‌رود. تغییر عضویت آن را دست نمی‌زند.

پارامترها: audiences.list_contacts

limitint
شمار مخاطبان در هر صفحه: عددی صحیح از ۱ تا ۲۰۰، با پیش‌فرض ۵۰.
cursorstr
`nextCursor` صفحهٔ قبل، که با همان `q`، `source` و `sort` فرستاده می‌شود. نشانگری که به مخاطبی بیرون از این گروه اشاره کند 400 `invalid_cursor` می‌دهد.
qstr
در نام و نشانی جست‌وجو می‌کند، تا ۲۰۰ نویسه. اگر در صفحهٔ نخست هیچ چیز دقیقاً جور نشود، به‌جایش نوشتارهای نزدیک برگردانده می‌شوند، و صفحه‌های بعدی به همان شیوه جست‌وجو را ادامه می‌دهند.
sourceContactSource
`'manual'` برای مخاطبانی که کسی آگاهانه ذخیره کرده، `'auto'` برای آن‌هایی که ویرایشگر نامهٔ برنامه ثبت کرده است. برای همهٔ اعضای گروه آن را نفرستید.
sortAudienceMemberSort
`'last-heard-newest'` (پیش‌فرض) و `'last-heard-oldest'` بر پایهٔ `lastSeenAt` هستند، و مخاطبانی که هرگز برایشان نامه‌ای نرفته در اولی آخر و در دومی اول می‌آیند. `'added-newest'` و `'added-oldest'` بر پایهٔ زمان پیوستن هر مخاطب به این گروه‌اند، و `'name'` بزرگی و کوچکی حروف را نادیده می‌گیرد و مخاطب بی‌نام را بر پایهٔ نشانی‌اش مرتب می‌کند.
statusesSequence[AudienceMemberStatus]
`['subscribed']` اعضایی را که لغو اشتراک نکرده‌اند نگه می‌دارد و `['unsubscribed']` آن‌هایی را که کرده‌اند. برای همهٔ اعضای مخاطبان آن را حذف کنید یا هر دو را ذکر کنید. مقادیر در `AUDIENCE_MEMBER_STATUSES` هستند.

پاسخ: AudienceContactResource

list_contacts یک Page[AudienceContactResource] برمی‌گرداند، و list_all_contacts و iterate_contacts با همان گزینه‌ها همهٔ صفحه‌ها را می‌پیمایند. هر ردیف یک ContactResource است، که فیلدهایش در صفحهٔ مخاطبان آمده، با دو فیلد بیشتر. پیمایش همهٔ صفحه‌ها راه برون‌بری یک گروه مخاطب است.

addedAtstr
ISO-8601 به وقت UTC، زمانی که مخاطب به این گروه پیوسته است. بیرون آوردن مخاطب و افزودن دوباره‌اش آن را از نو آغاز می‌کند.
unsubscribedAtstr | None
ISO-8601 به وقت UTC، زمانی که مخاطب از یک ارسال گروهی به این گروه لغو اشتراک کرد، یا `None` تا وقتی مشترک است. مخاطبِ لغوشده در گروه می‌ماند و ارسال‌های گروهی به آن از او رد می‌شوند. بیرون آوردن و افزودن دوباره‌اش، او را از نو مشترک می‌کند.

افزودن و برداشتن گروهی

add_contacts و remove_contacts مقدار {'emails': [...]} را با ۱ تا ۲۰۰ نشانی می‌گیرند و یک گروه را با یک درخواست تغییر می‌دهند. add_contacts هرگز مخاطب نمی‌سازد: نشانی‌ای که مخاطب نیست در missing برمی‌گردد، و import_contacts فراخوانی‌ای است که آن‌ها را می‌سازد. تکرار هر دو بی‌خطر است، پس تلاش دوباره پس از پایان مهلت، همان افراد را انجام‌شده گزارش می‌کند به‌جای آنکه شکست بخورد.

افزودن به گروه مخاطبان پیش‌فرض 'added': 0 برمی‌گرداند، چون همهٔ مخاطبان از پیش در آن‌اند، و remove_contacts روی آن با 409 audience_immutable رد می‌شود. بیرون آوردن کسی از یک گروه، او را در دفترچهٔ نشانی‌ها، در گروه مخاطبان پیش‌فرض و در گروه‌های دیگرش باقی می‌گذارد.

audienceIdstr
گروهی که فراخوانی تغییرش داده، در هر دو نتیجه.
addedint
در `AudienceBatchAddResource`: عضویت‌های تازه‌ای که این فراخوانی ساخته است.
unchangedint
در `AudienceBatchAddResource`: مخاطبانی که از پیش در گروه بوده‌اند. چیزی برایشان نوشته نشد.
removedint
در `AudienceBatchRemoveResource`: عضویت‌هایی که این فراخوانی برداشته است.
notInAudiencelist[str]
در `AudienceBatchRemoveResource`: مخاطبانی که در گروه نبوده‌اند، پس اتفاقی برایشان نیفتاد.
missinglist[str]
در هر دو: نشانی‌هایی که در این فضای کاری مخاطب نیستند، به حروف کوچک و بی‌تکرار.

درون‌بری

import_contacts همان درون‌بری CSV صفحهٔ گروه مخاطب است. {'contacts': [...]} را می‌گیرد، 1 تا 500 ردیف، هر کدام با یک email و یک name اختیاری: هر نشانی درست‌ساخت اگر هنوز مخاطب نیست مخاطب می‌شود، و همه به گروه می‌رسند. فهرست بلندتر را در چند فراخوانی بفرستید. به audiences:write و contacts:write نیاز دارد.

نشانی‌ای که از پیش مخاطب است دوباره به کار می‌رود و نامش را نگه می‌دارد، و name در اینجا تنها نامی خالی را پر می‌کند. مخاطب تازه با manual ذخیره می‌شود و به گروه مخاطبان پیش‌فرض هم می‌پیوندد، و نشانی‌ای که از دفترچه حذف شده برمی‌گردد. فرستادن دوبارهٔ همان ردیف‌ها چیزی را دو بار نمی‌سازد.

audienceIdstr
گروهی که ردیف‌ها به آن رفته‌اند.
createdint
مخاطبان تازه‌ای که این فراخوانی ذخیره کرده است.
addedint
عضویت‌های تازه در این گروه، شامل مخاطبانی که از پیش وجود داشتند و هنوز در آن نبودند.
skippedint
ردیف‌هایی که به دلیل نادرست بودن نشانی درون‌بری نشدند.
invalidlist[str]
نشانی‌های نادرست، دقیقاً همان‌طور که فرستاده شده‌اند.

خالی کردن

empty(id) با یک درخواست همهٔ مخاطبان را از یک گروه بیرون می‌آورد و یک EmptiedAudienceResource برمی‌گرداند: گروه به شکل کنونی‌اش، با contactCount برابر 0، به‌علاوهٔ removed، یعنی شمار عضویت‌های برداشته‌شده. گروه شناسه، نام و توضیحش را نگه می‌دارد، و هر مخاطب در دفترچهٔ نشانی‌ها و در گروه‌های دیگرش می‌ماند.

برگشت‌پذیر نیست و هیچ چیزی ثبت نمی‌کند چه کسانی در فهرست بوده‌اند، پس اگر ممکن است آن را دوباره بخواهید، نخست list_all_contacts را پیمایش کنید. گروه مخاطبان پیش‌فرض را نمی‌توان خالی کرد، و فراخوانی با 409 audience_immutable رد می‌شود.

رشد

growth() می‌خواند که در بازه‌ای که اکنون پایان می‌یابد، روزانه، ساعتی یا دقیقه‌ای، چند مخاطب به هر گروه پیوسته‌اند، یعنی نمودار صفحهٔ گروه‌های مخاطب. به audiences:read نیاز دارد و یک AudienceGrowthResource برمی‌گرداند.

گروه مخاطب ثبت می‌کند کسی کی پیوسته و هرگز ثبت نمی‌کند کی رفته، پس هر عدد مربوط به پیوستن کسانی را می‌شمارد که امروز هنوز در فهرست‌اند، بر پایهٔ تاریخ پیوستنشان، و هیچ خطی پایین نمی‌آید. مخاطبی که پیوسته و بعد رفته در هیچ‌کدام از عددها نیست.

پارامترها

audience_idsSequence[str]
تا ۵۰ شناسهٔ گروه مخاطب، که با ویرگول به هم پیوسته فرستاده می‌شوند. برای همهٔ گروه‌ها آن را نفرستید. شناسه‌ای که گروه مخاطبی در این فضای کاری نیست 404 `audience_not_found` می‌دهد.
daysint
بازه تا چه اندازه به عقب می‌رود، ۱ تا ۱۰۹۵. وقتی نه `days` داده شود و نه `minutes`، ۳۰ است.
minutesint
بازه به دقیقه، ۱ تا ۱۵۷۶۸۰۰، برای بازه‌ای کوتاه‌تر از یک روز. وقتی هر دو داده شوند، بر `days` اولویت دارد.
grainTrackingGrain
اندازهٔ هر بخش: `day` (پیش‌فرض)، `hour` یا `minute`.
offset_minutesint
اختلاف ساعت بیننده با UTC به دقیقه، ‎-840 تا 840، تا بخش‌های روزانه و ساعتی از مرز محلی او آغاز شوند. پیش‌فرض 0.

پاسخ

sincestr
ISO-8601 به وقت UTC، آغاز نخستین بخش.
untilstr
ISO-8601 به وقت UTC، لحظهٔ خواندن.
totalsAudienceGrowthTotals
`contacts` هر کس را یک بار می‌شمارد، در هر چند فهرست که باشد، و `memberships` فهرست‌ها را جمع می‌زند، پس هر کس به ازای هر فهرست خوانده‌شده‌ای که او را در بر دارد یک بار شمرده می‌شود. `subscribed` کسانی را که هنوز دست‌کم در یکی از فهرست‌های خوانده‌شده مشترک‌اند، هر کدام یک بار، می‌شمارد. `added` پیوستن‌های درون بازه را جمع می‌زند، `unsubscribed` لغو اشتراک‌های درون آن را، `lists` شمار گروه‌های خوانده‌شده است، و `busiest` بخشی است که بیشترین پیوستن را داشته، یا `None`.
serieslist[AudienceGrowthSeries]
یک مدخل برای هر گروه، از بزرگ‌ترین: `id`، `name`، `builtin` (در گروه مخاطب پیش‌فرض `True`)، `total` اعضای کنونی، `subscribed` (آن‌هایی از آنان که لغو اشتراک نکرده‌اند)، `before` (کسانی که پیش از `since` پیوسته‌اند)، `added` (کسانی که درون بازه پیوسته‌اند)، `unsubscribed` (کسانی که درون آن لغو اشتراک کرده‌اند) و `buckets`، هرکدام یک دیکشنری از `bucket`، `added` و `unsubscribed`. تنها بخش‌هایی که در آن‌ها پیوستن یا لغو اشتراکی بوده فهرست می‌شوند، با کلیدهای `YYYY-MM-DD`، `YYYY-MM-DDTHH` یا `YYYY-MM-DDTHH:MM` به وقت محلیِ اختلاف ساعت.

مرجع