Аудитории
`audiences.list`, `get`, `create`, `update`, `delete`, `listContacts`, `addContact` и `removeContact`.
Все методы
const audiences = await openemail.audiences.list()const everyone = audiences.find((audience) => audience.builtin === 'default') const list = await openemail.audiences.create({ name: 'Product updates', description: 'Customers who asked to hear about releases',}) await openemail.contacts.create({ email: '[email protected]', name: 'Grace Hopper' })await openemail.audiences.addContact(list.id, { email: '[email protected]' }) const members = await openemail.audiences.listContacts(list.id, { limit: 200 }) await openemail.audiences.update(list.id, { name: 'Release notes' })await openemail.audiences.removeContact(list.id, '[email protected]')await openemail.audiences.delete(list.id) console.log(everyone?.contactCount, members.length)Аудитория — это именованный список контактов в этом рабочем пространстве. Каждый контакт с момента появления входит во встроенную аудиторию по умолчанию, и именно её обозначает builtin; остальные вы создаёте, наполняете и удаляете сами. Ветвитесь по builtin, а не по имени, которое может изменить кто угодно.
Эта версия управляет списками и ничего в них не рассылает. Метода для рассылки искать не надо, а помещение контакта в аудиторию — это запись в аудиторию, а не в контакт, так что проверяется только область доступа audiences:write.
addContact принимает адрес, который уже является контактом, и отклоняет тот, который им не является, с 422 contact_not_found. Сначала сохраните его через openemail.contacts.create. Повторное добавление отвечает уже существующим членством, несущим свой исходный addedAt, так что вызов безопасно повторять.
Аудиторию по умолчанию можно переименовать и описать, как любую другую, но её нельзя удалить и нельзя проредить. И то и другое отклоняется с 409 audience_immutable. Удаляйте контакт, когда имеете в виду именно уход контакта.
Ответ: AudienceResource
list разрешается в обычный массив таких объектов, где первой идёт аудитория по умолчанию, а дальше — новые сверху, а get, create и update разрешаются каждый в один объект. listContacts вместо этого разрешается в массив ContactResource, то есть в сами контакты, а не в записи о членстве.
idstring- Долговечная ручка: `aud_` и следом 24 шестнадцатеричных символа. Имена не уникальны, так что в сохранённой конфигурации место именно этому.
namestring- Обрезается при записи, от 1 до 120 символов. Две аудитории могут носить одно имя, потому что к аудитории обращаются по её идентификатору.
descriptionstring | null- Свободный текст для того, кто будет читать список позже. Null, когда никто ничего не написал, и явный null в `update` очищает его.
builtin'default' | (string & {}) | null- `default` ровно у одной строки на рабочее пространство — у аудитории, которая держит все контакты, — и null у каждой созданной кем-то аудитории. Объединение остаётся открытым, чтобы добавленная позже встроенная аудитория сужала тип в редакторе, не ломая опубликованный тип.
contactCountnumber- Сколько контактов в аудитории, посчитано в момент чтения, а не взято из кэша. Два чтения по обе стороны от `contacts.create` разойдутся на единицу.
createdAtstring- ISO-8601 UTC, когда аудитория была создана. Задаёт порядок списка после аудитории по умолчанию.
updatedAtstring- ISO-8601 UTC, обновляется при переименовании или смене описания. Изменения состава его не трогают.