Черновики выпусков¶
Черновик выпуска это заготовка выпуска содержащая его содержимое (параметр letter) и ,возможно, разнообразные параметры выпуска влияющие на его формирование (прочие параметры одноимённые с issue.send)
Для использования черновика просто указывает его id или alias в issue.send
Приоритет источника содержимого и параметров выпуска описан в issue.send
Эти вызовы поменяли формат принимаемых и возвращаемых данных на совместимый с issue.sendПоля старого формата ответов будут ещё некоторое время возвращаться для обратной совместимости.Старый формат изменения данных будет ещё некоторое время приниматься для обратной совместимости.
Список черновиков¶
Такой же список можно получить с помощью вызова stat.uni для объекта draft c использованием более разнообразной фильтрации и с сортировкой
{
"action" : "issue.draft.list"
-- параметры фильтрации, должен быть хотя бы один параметр
--
-- если выбрана последняя порция списка то ответ содержит "last_page" : 1
--
-- доступны поля
--
-- issue_draft.id -- код черновика
-- issue_draft.name -- "название"
-- issue_draft.channel -- канал отправки email|sms|viber|push|vk|tg|vknotify|pushapp|max
-- issue_draft.create.date -- "дата и время создания" -- Ys, null
-- issue_draft.update.date -- "дата и время последнего изменения" -- Ys, null
-- issue_draft.alias -- "альтернативный идентификатор"
-- issue_draft.reltype -- число
-- issue_draft.relref -- число
-- issue_draft.template -- 0|1 -- признак шаблона (шаблон - заранее предустановленный черновик с оформлением)
-- issue_draft.public_preview -- "ссылка просмотра черновика без пароля"
--
,"filter" : [ фильтр в синтаксисе stat.uni ]
,"order" : [ сортировка ответа в синтаксисе stat.uni ]
,"skip" : количество пропускаемых записей от начала списка -- по умолчанию 0
,"first" : количество выбираемых записей после skip -- по умолчанию 50, не более 50
}
ответ
{
<общие поля>
,"list" : [
{
"id" : код черновика
,"alias" : "альтернативный идентификатор"
,"format" : "viber|sms|html|text|push|vk|tg|vknotify|pushapp|max" -- формат черновика (для черновиков с несколькими текстами указывается только один)
,"name" : "название"
,"template" : 0|1 -- признак шаблона (шаблон - заранее предустановленный черновик с оформлением)
,"create.date" : "дата и время создания" -- Ys, null
,"update.date" : "дата и время последнего изменения" -- Ys, null
,"public_preview" : "ссылка просмотра черновика без пароля"
,"thumbnail" : [ список ссылок, аналогично issue.draft.get ]
,"reltype" : ...
,"relref" : ...
}
...
]
}
Чтение черновика¶
{
"action" : "issue.draft.get"
,"id" : код черновика или "альтернативный идентификатор"
,"novars" : 0|1 -- не возвращать variables
}
ответ
{
<общие поля>
"obj" : {
"id" : код черновика
,"alias" : "альтернативный идентификатор"
,"name" : "название черновика"
,"channel" : "email|sms|viber|push|vk|tg|vknotify|pushapp|max", -- канал для которого предназначен черновик
,"format" : "viber|sms|html|text|push|vk|tg|vknotify|pushapp|max" -- формат черновика (для черновиков с несколькими текстами указывается только один)
,"create.date" : "дата и время создания" -- Ys, null
,"update.date" : "дата и время последнего изменения" -- Ys, null
,"public_preview" : "ссылка просмотра черновика без пароля"
,"reltype" : ...
,"relref" : ...
,"template" : 0|1 -- признак шаблона (шаблон - заранее предустановленный черновик с оформлением)
-- У предустановленных черновиков (при template = 1)
,"template.thumbnail" : "http://.." -- расположение (URL) изображения шаблона
-- Содержимое письма и настройки выпуска (аналогично issus.send)
,"letter" : {
параметры содержимого письма
}
,.... прочие параметры выпуска как в issue.send ....
-- ссылки на изображения черновика
-- только для html черновиков
-- в настоящий момент поддерживаются картинки 800x600
-- надо учитывать что ссылка может вести на отсутствующее изображение
-- например, из-за сбоя при её формировании
,"thumbnail" : [
{
"url" : "ссылка на изображение"
,"width" : ширина в пикселах,
,"height" : высота в пикселах
},
...............
]
}
-- список используемых в черновике переменных персонализации с указанием где используются
-- отсутствует при novars : 1 или когда у нет letter
,"variables": {
"email" {
"header": [
"header_var1",
"header_var2",
"header_var3"
.......
],
"html": [
"html_var1",
"html_var2",
"html_var3"
.......
],
"amp": [
"html_var1",
"html_var2",
"html_var3"
.......
],
"text": [
"text_var1",
"text_var2"
.......
]
}
,"viber" : {
"viber": [
"viber_var1",
"viber_var2"
.......
]
}
,"push" : {
"push": [
"push_var1",
"push_var2"
.......
]
}
,"vk" : {
"vk" : [
"vk_var1",
"vk_var2"
.......
]
}
,"tg" : {
"tg" : [
"tg_var1",
"tg_var2"
.......
]
}
,"vknotify" : {
"vknotify" : [
"vknotify_var1",
"vknotify_var2"
.......
]
}
,"pushapp" : {
"pushapp" : [
"pushapp_var1",
"pushapp_var2"
.......
]
}
,"max" : {
"max" : [
"max_var1",
"max_var2"
.......
]
}
,"sms" : {
"sms": [
"sms_var1",
"sms_var2"
.......
]
}
}
}
Создание или изменение черновика¶
Создает или изменяет параметры и содержимое черновиков. Вызов не может быть применён к шаблонам (предустановленным черновикам) с оформлением.
При изменении уже существующего черновика, изменяются только указанные в obj параметры. Не указанные - остаются как были.
{
"action" : "issue.draft.set"
,"obj" : {
"alias" : "альтернативный идентификатор" -- не обязательно. не должен начинаться с цифры и не должен содержать пробелы
-- может использоваться во всех местах где требуется указать код черновика
,"name" : "название черновика" -- обязательно при создании
,"reltype" : ...
,"relref" : ...
-- Содержимое письма и настройки выпуска (аналогично issus.send)
-- При выпуске приоритет имеют параметры указанные в самом выпуске, а при их отсутствии берутся из черновика если не указано иное (подробнее в issue.send)
-- Для удаления параметра из черновика используйте значение null - для части параметров играет роль даже просто их наличие
,"letter" : { -- обязательно при создании
параметры содержимого письма как у issue.send кроме draft.id
для email сообщений обязательны не пустые - адрес отправителя, тема и как минимум один текст
для sms сообщения обязательны не пустые - имя отправителя и текст
для viber сообщения обязательны не пустые - текст
для push сообщения обязательны не пустые - тема/текст
для vk сообщения обязательны не пустые - тема/текст
для tg сообщения обязательны не пустые - тема/текст
для vknotify сообщения обязательны не пустые - тема/текст
для pushapp сообщения обязательны - тема/текст
для max сообщения обязательны - тема/текст
}
,"letter.zip" : "содержимое архива закодированное в base64" -- (не обязательно) как и при issue.send
-- zip-архив содержащий текст выпуска и сопровождающие картиyки для оформления
-- В архиве ищется индексный файл который даст текст выпуска -это первый регистронезависимый файл *.htm(l) с наименьшим уровнем вложенности и наименьшим среди одноуровневых именем
-- Остальное содержимое каталога в котором он находится сохраняется в Хранилище картинок.
-- Остальные части архива игнорируются
-- В содержимом индексного файла относительные ссылки в img-src и ссs-url() дополняются веб-базой каталога куда было сохранено содержимое.
-- Полученный результат записывается в letter-> message->html (т.е. это будет email черновик)
-- Остальные параметры по прежнему передаются через явно указанный в вызове letter (например тема)
-- Если в вызове уже есть letter и в нём есть есть message, то это ошибка
,.... прочие параметры выпуска как в issue.send ....
}
-- необязательные
,"id" : код черновика или "альтернативный идентификатор" -- если не указан, создается новый
,"return_fresh_obj" : "нужно вернуть данные объекта -- да, нет ( 1 | 0 )"
}
ответ
{
<общие поля>
,obj { ... } -- объект в формате issue.draft.get если "return_fresh_obj" : 1
,"zip_draft" : { -- дополнительная информация если letter.zip был использован
"zip_base" : "подкаталог архива взятый за основу"
,"zip_index" : "имя файла взятого за содержимое"
,"rfs_base" : "путь по rfs до каталога куда загружены файлы в домене image"
,"img_base" : "абсолютный url для rfs_base"
,'attachs' : [
"имена файлов загруженных в хранилище"
]
}
}
}
Удаление черновика¶
{
"action" : "issue.draft.delete"
-- одного
,"id" : код черновика или "альтернативный идентификатор"
--- или нескольких
,"id" : [код или "альтернативный идентификатор черновика1", код или "альтернативный идентификатор черновика2", .. ]
}
ответ
Предпросмотр черновика¶
Вызов позволяет на основе черновика и указанного адреса получить персонализированный вариант сообщения что бы оценить вид письма.
Вторая схема использования - получить текстовую версию html-черновика что бы оценить корректность автоматического преобразования.
{
"action" : "issue.draft.preview"
,"addr_type" : "тип адреса" -- не обязательно
-- одно из или ни одного
,"email" : "адрес для данных персонализации" -- не обязательно
-- или
,"email" : { -- не обязательно
данные персонализации. даже значения для member.*
}
,"autotext" : "1|ширина" -- не обязательно
-- используется только совместно с html-версией
-- как результат возвращается html-версия преобразованная в текст
-- с сохранением всех команд персонализации
--
-- 1 - ширина строки 80 символов
-- ширина - ширина строки - как указано
,"extra" : { -- не обязательно
дополнительные данные персонализации как в issue.send
}
-- одно из
,"id" : номер черновика
-- или
,"obj" : { -- можно передавать объект из issue.draft.get - лишние поля будут проигнорированы
"letter" : {
параметры содержимого письма как у issue.send
}
}
}
ответ
{
<общие поля>
,"format" : "предполагаемый формат выпуска"
,"letter" : {
-- персонализированные параметры содержимого письма
}
,"smses" : число -- для sms. во сколько смс уложится сообщение
--- для совместимости со старым форматом. будет удалено 01 октября 2017 года
"text" : "текст выпуска"
}
Предпросмотр в EmailOnAcid¶
Специфические ошибки
while_preview/authext_error
while_preview/request_error
while_preview/service_error
while_preview/wrong_args
while_preview/wrong_auth
while_preview/wrong_auth_token
while_preview/wrong_client_name
while_preview/wrong_clients
while_preview/wrong_service_name
while_preview/wrong_tag_name
while_preview/wrong_tags
Заказать генерацию предпросмотра¶
{
"action" : "issue.draft.preview"
<обычные параметры для предпросмотра определяющие черновик или текст>
,"preview" : {
"service" : "eoa"
,"clients" : ["...","..."] -- список почтовых клиентов для которых требуется генерация
-- не обязательно, по умолчанию используется список настроенный
-- в аккаунте сервиса EmailOnAcid
,"tags" : ["...","..."] -- список меток, не обязательно
-- позволяет искать результат в интерфейсе сервиса EmailOnAcid
}
}
ответ
{
<обычный ответ апи>
,"preview.id" : "идентификатор генерации для последующего вызова получения результата"
}
Получить результат генерации¶
Если сервис EmailOnAcid ещё не успел подготовить результат, то вызов завершится с ошибкой
{
"action" : "issue.draft.preview"
,"preview" : {
"service":"eoa"
,"id" : "идентификатор генерации"
,"client" : "почтовый клиент для которого нужен результат"
}
}
ответ
{
<общие поля>
"list" : {
"почтовый клиент из запроса" : {
"url" : "ссылка на полное изображение"
,"thumb" : "ссылка на миниатюру"
}
}
}
Получить список доступных почтовых клиентов¶
ответ
{
<общие поля>
,"list" : [
"notes85",
"wde_chr26_win",
"thunderbird13",
"gapps_ff21_win",
"aol_ff21_mac",
"outlook03",
"iphonese_12",
"iphone8_12",
"gmx_ie11_win",
"gapps_ie11_win",
"lb_chr26_win",
"tsa_ie11_win",
"toe_chr26_win",
"o365_ff21_win",
"iphonexsmax_13",
...
]
}
Получить список почтовых клиентов установленных по умолчанию¶
ответ
Получить подробное описание почтовых клиентов¶
ответ
{
<общие поля>
,"list" : {
"notes85" : {
"client" : "Lotus Notes 8.5",
"default" : true,
"category" : "Application",
"id" : "notes85",
"os" : "Windows 7"
},
"wde_chr26_win" : {
"client" : "Web.de",
"browser" : "Chrome",
"default" : true,
"category" : "Web",
"id" : "wde_chr26_win",
"os" : "Windows 7"
},
"thunderbird13" : {
"client" : "Thunderbird",
"default" : true,
"category" : "Application",
"id" : "thunderbird13",
"os" : "Windows 7"
},
...
}
}