Архив выпусков¶
Список выпусков в архиве¶
В большинстве случаев вызов issue.list + несколько issue.get можно заменить одним более быстрым вызовом stat.uni для объекта issue.
{
"action" : "issue.list"
,"from" : "YYYY-MM-DD" -- от даты (не обязательно)
,"upto" : "YYYY-MM-DD" -- до даты (не обязательно)
,"group" : [ -- фильтр по группам (не обязательно)
код-группы-1
,код-группы-2
...
]
,"format" : "email|sms|viber|push|vk|tg|vknotify|pushapp|max" -- фильтр по формату (не обязательно)
}
ответ
{
<общие поля>
,"list" : [
{
"id" : уникальный идентификатор выпуска
,"gid" : "код группы"
,"date" : "дата выпуска" -- Ys
}
...
]
}
Чтение выпуска в архиве¶
Если не нужен текст выпуска или фильтр выпуска, то вызов issue.get можно заменить более быстрым вызовом stat.uni для объекта issue.
{
"action" : "issue.get"
,"id" : уникальный идентификатор выпуска
,'letter' => номерписьма -- только если выпуск personal
-- номер письма в выпуске для которого требуется ответ
-- без него для выпуска personal будет возвращена только некоторая общая информация так как, в отличии от массовых выпусков,
-- каждое письмо personal может быть индивидуально
,"source" : 0|1|2 -- вернуть текст как пошёл в рассылку (0) или как было на входе (1 или 2), а так же исходный текст фильтра выпуска (полностью развёрнутый)
-- при source=1 текст выпуска для personal всё равно как при source=0 т.к. для pesonal не сохраняется хранится исходник
-- при source=2 как source=1 и attaches в формате с url и со ссылкой на архив
-- отсутствие параметра вообще - старый формат ответа. поддерживается до 01 октября 2017
-- для smtp и потокового api при выпуске не по черновику текст взять неоткуда. при выпуске по черновикку - из черновика
,"with_name" : 0|1 -- вернуть group.name
,"with_archive" : 0|1 -- attaches в формате с url и со ссылкой на архив
}
ответ
{
<общие поля>
"obj" : {
"id" : уникальный идентификатор выпуска,
,"date" : "дата выпуска",
,"name" : "название выпуска"
,"group" : "уникальный идентификатор группы выпуска",
,"group.name" : "название группы выпуска", -- если with_name : 1
,"source" : "api|smtp|tranz" -- источник выпуска
,"channel" : "email|sms|viber|push|vk|tg|vknotify|pushapp|max", -- канал выпуска
,"draft.id" : "идентификатор черновика, по которому сделан выпуск", (null)
,"draft.alias" : "альтернативный идентификатор черновика, по которому сделан выпуск", (null)
,"class.id" : "идентификатор класса выпуска использованный при выпуске", (null)
,"class.alias" : "альтернативный идентификатор класса выпуска использованный при выпуске", (null)
,"sequence.id" : "идентификатор последовательности, событие в которой вызвало выпуск", (null)
,"variant.id" : "варианта сплит-тестирования для которого сделан выпуск", (null)
,"multi.id" : "идентификатор мультивыпуска для которого сделан выпуск", (null)
,"issue" : { -- как элемент issue.send
"letter" : {
-- параметры содержимого выпуска (отправитель, получатель, тема, содержимое..)
-- при выпуске по черновику - его содержимое, а номер черновика выше в draft.id
-- в message уже оформленное содержимое письма как пошло в рассылку если source = 0
-- в message исходное содержимое если source = 1 или 2
-- при source 0 или 1 и без with_archive список прикреплённых файлов в формате содержащим только их названия
-- содержимое можно получить через issue.get.attach по названию
,"attaches" : [
"aaa.doc"
,"bbb.doc"
...
]
-- при source 2 или with_archive список прикреплённых файлов в формате содержащим их названия, ссылку на архив (при доступности) и, при наличии, url откуда они были получены
-- содержимое можно получить через issue.get.attach по названию
-- для выпусков через smtp и потоковое апи ссылок на архив и url нет
,"attaches" : [
{
"name" : "aaa.doc"
,"url" : "http://test.ru/aaa.doc"
,"archive" : "https://sendsay.ru/archive......"
}
,{
"name" : "bbb.doc"
,"archive" : "https://sendsay.ru/archive......"
}
...
]
}
}
-- прочие параметры выпуска (accumalate, ttl, class.id, ...)
}
-- source >= 1
,"extra" : { дополнительные данные произвольной структуры использованные в выпуске }
,"filter" : {
-- фильтр группы, каким он был в момент выпуска
-- не для personal и masssending
}
-- для всех source
,"archive" : "ссылка на выпуск в архиве" -- если personal без letter, то смысла в такой ссылки нет
-- отсутсвует для выпусков через smtp и потоковое апи
-- ссылки на изображения письма выпуска
-- только для html выпусков, и только для групп отличных от personal
-- в настоящий момент поддерживаются картинки 800x600
-- надо учитывать что ссылка может вести на отсутствующее изображение
-- например, из-за сбоя при её формировании
-- отсутсвует для выпусков через smtp и потоковое апи
,"thumbnail" : [
{
"url" : "ссылка на изображение"
,"width" : ширина в пикселах,
,"height" : высота в пикселах
},
...............
]
}
}
Получение файлов, приложенных к выпуску¶
Получение приложенных файлов которые задавались при выпуске содержимым, а не ссылкой
{
"action" : "issue.get.attach"
,"id" : уникальный идентификатор выпуска
,'letter' => номерписьма -- только если выпуск personal
-- номер письма в выпуске для которого требуется ответ
-- без него для выпуска personal будет возвращена только некоторая общая информация так как, в отличии от массовых выпусков,
-- каждое письмо personal может быть индивидуально
,"encoding" : "желаемая кодировка данных в ответе" -- пусто или не указана - обычная Unicode/UTF-8
-- base64 - содержимое будет возвращено в base64
,"attach" : [ -- имена файлов вложений, которые необходимо получить (если параметр не указан - все вложения)
"aaa.doc"
,"bbb.doc"
...
]
}
ответ