Документация для разработчиков

Диалоги

Переписка с подписчиками — Даша.Диалоги.

Это методы предыдущей версии API. Они работают и отключаться не будут, но новые интеграции лучше писать на REST API v2.

dialogs.list #

GET ?method=dialogs.list

Получаем список диалогов

Параметры

ПараметрТипОписание
statusstringфильтр по статусу: open, closed, all. По-умолчанию: open
unread_onlyintтолько непрочитанные: 1 или 0. По-умолчанию: 0
campaign_idintid кампании для фильтрации
list_idintid адресной базы для фильтрации
qstringпоисковый запрос (по email подписчика, теме письма или названию кампании)
limitintколичество результатов (1-200). По-умолчанию: 50
offsetintсмещение для пагинации. По-умолчанию: 0

Что возвращается

Массив диалогов с параметрами.

ПолеОписание
idid диалога
user_idid аккаунта
sub_idid субаккаунта
campaign_idid кампании
list_idid адресной базы
member_idid подписчика
subscriber_emailemail подписчика
subjectтема письма
statusстатус диалога: open или closed
unread_countколичество непрочитанных сообщений
last_message_atдата и время последнего сообщения
last_inbound_atдата и время последнего входящего сообщения
created_atдата и время создания диалога
campaign_nameназвание кампании
last_message_previewпревью последнего сообщения (до 250 символов)
has_attachmentsесть ли вложения в диалоге (true/false)
curl 'https://api.dashamail.com/?method=dialogs.list&api_key=YOUR_API_KEY'
<?php
$url = 'https://api.dashamail.com/?' . http_build_query([
    'method' => 'dialogs.list',
    'api_key' => 'YOUR_API_KEY',
]);

$response = json_decode(file_get_contents($url), true);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.get(
    'https://api.dashamail.com/',
    params={
        'method': 'dialogs.list',
        'api_key': 'YOUR_API_KEY',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const params = new URLSearchParams({
  "method": "dialogs.list",
  "api_key": "YOUR_API_KEY"
});

const response = await fetch(`https://api.dashamail.com/?${params}`);
const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.get #

GET ?method=dialogs.get

Получаем данные конкретного диалога

Параметры

ПараметрТипОписание
dialog_id обязательныйintid диалога

Что возвращается

Данные диалога.

ПолеОписание
idid диалога
user_idid аккаунта
sub_idid субаккаунта
campaign_idid кампании
list_idid адресной базы
member_idid подписчика
subscriber_emailemail подписчика
subjectтема письма
statusстатус диалога: open или closed
unread_countколичество непрочитанных сообщений
last_message_atдата и время последнего сообщения
created_atдата и время создания диалога
campaign_nameназвание кампании
curl 'https://api.dashamail.com/?method=dialogs.get&api_key=YOUR_API_KEY&dialog_id=1'
<?php
$url = 'https://api.dashamail.com/?' . http_build_query([
    'method' => 'dialogs.get',
    'api_key' => 'YOUR_API_KEY',
    'dialog_id' => 1,
]);

$response = json_decode(file_get_contents($url), true);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.get(
    'https://api.dashamail.com/',
    params={
        'method': 'dialogs.get',
        'api_key': 'YOUR_API_KEY',
        'dialog_id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const params = new URLSearchParams({
  "method": "dialogs.get",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
});

const response = await fetch(`https://api.dashamail.com/?${params}`);
const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.messages #

POST ?method=dialogs.messages

Получаем сообщения диалога

Параметры

ПараметрТипОписание
dialog_id обязательныйintid диалога
limitintколичество сообщений (1-200). По-умолчанию: 100
offsetintсмещение для пагинации. По-умолчанию: 0

Что возвращается

Массив сообщений и событий диалога в хронологическом порядке.

ПолеОписание
idid сообщения
dialog_idid диалога
directionнаправление: in (входящее) или out (исходящее)
author_user_idid автора (для исходящих)
from_emailemail отправителя
from_nameимя отправителя
subjectтема письма
body_text_cleanтекстовое тело (без цитат)
body_html_cleanHTML-тело (без цитат)
is_readпрочитано или нет (0/1)
created_atдата и время сообщения
attachmentsмассив вложений (id, filename, content_type, size_bytes)
kindтип записи: message или event (closed/opened)
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.messages",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.messages',
        'api_key' => 'YOUR_API_KEY',
        'dialog_id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.messages',
        'api_key': 'YOUR_API_KEY',
        'dialog_id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.messages",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.reply #

POST ?method=dialogs.reply

Отправляем ответ в диалог

Параметры

ПараметрТипОписание
dialog_id обязательныйintid диалога
body_html обязательныйstringHTML-тело ответа
body_text обязательныйstringтекстовое тело ответа
quote_originalintцитировать исходное сообщение: 1 или 0. По-умолчанию: 1

Что возвращается

Данные отправленного сообщения.

ПолеОписание
message_idid созданного сообщения
dialog_idid диалога
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.reply",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1,
  "body_html": "значение",
  "body_text": "значение"
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.reply',
        'api_key' => 'YOUR_API_KEY',
        'dialog_id' => 1,
        'body_html' => 'значение',
        'body_text' => 'значение',
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.reply',
        'api_key': 'YOUR_API_KEY',
        'dialog_id': 1,
        'body_html': 'значение',
        'body_text': 'значение',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.reply",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1,
  "body_html": "значение",
  "body_text": "значение"
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.markRead #

POST ?method=dialogs.markRead

Помечаем диалог прочитанным

Параметры

ПараметрТипОписание
dialog_id обязательныйintid диалога
message_idintid конкретного сообщения (если не указано - помечает все)

Что возвращается

Результат операции.

ПолеОписание
successtrue при успехе
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.markRead",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.markRead',
        'api_key' => 'YOUR_API_KEY',
        'dialog_id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.markRead',
        'api_key': 'YOUR_API_KEY',
        'dialog_id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.markRead",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.markUnread #

POST ?method=dialogs.markUnread

Помечаем диалог непрочитанным

Параметры

ПараметрТипОписание
dialog_id обязательныйintid диалога

Что возвращается

Результат операции.

ПолеОписание
successtrue при успехе
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.markUnread",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.markUnread',
        'api_key' => 'YOUR_API_KEY',
        'dialog_id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.markUnread',
        'api_key': 'YOUR_API_KEY',
        'dialog_id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.markUnread",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.close #

POST ?method=dialogs.close

Закрываем диалог

Параметры

ПараметрТипОписание
dialog_id обязательныйintid диалога

Что возвращается

Результат операции.

ПолеОписание
successtrue при успехе
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.close",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.close',
        'api_key' => 'YOUR_API_KEY',
        'dialog_id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.close',
        'api_key': 'YOUR_API_KEY',
        'dialog_id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.close",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.open #

POST ?method=dialogs.open

Открываем диалог

Параметры

ПараметрТипОписание
dialog_id обязательныйintid диалога

Что возвращается

Результат операции.

ПолеОписание
successtrue при успехе
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.open",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.open',
        'api_key' => 'YOUR_API_KEY',
        'dialog_id' => 1,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.open',
        'api_key': 'YOUR_API_KEY',
        'dialog_id': 1,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.open",
  "api_key": "YOUR_API_KEY",
  "dialog_id": 1
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.unreadCount #

POST ?method=dialogs.unreadCount

Получаем количество непрочитанных диалогов

Что возвращается

Количество непрочитанных диалогов.

ПолеОписание
totalобщее количество непрочитанных диалогов
by_statusколичество по статусам: {open, closed}
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.unreadCount",
  "api_key": "YOUR_API_KEY"
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.unreadCount',
        'api_key' => 'YOUR_API_KEY',
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.unreadCount',
        'api_key': 'YOUR_API_KEY',
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.unreadCount",
  "api_key": "YOUR_API_KEY"
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

dialogs.attachment #

POST ?method=dialogs.attachment

Получаем ссылку для скачивания вложения

Параметры

ПараметрТипОписание
attachment_id обязательныйintid вложения

Что возвращается

Данные для скачивания вложения.

ПолеОписание
urlpre-signed URL для скачивания (действует 15 минут)
filenameимя файла
content_typeMIME-тип
size_bytesразмер в байтах
curl -X POST 'https://api.dashamail.com/' \
  -H 'Content-Type: application/json' \
  -d '{
  "method": "dialogs.attachment",
  "api_key": "YOUR_API_KEY",
  "attachment_id": 5
}'
<?php
$ch = curl_init('https://api.dashamail.com/');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'method' => 'dialogs.attachment',
        'api_key' => 'YOUR_API_KEY',
        'attachment_id' => 5,
    ], JSON_UNESCAPED_UNICODE),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['response']['msg']['err_code'] !== 0) {
    throw new RuntimeException($response['response']['msg']['text']);
}
print_r($response['response']['data']);
import requests

response = requests.post(
    'https://api.dashamail.com/',
    json={
        'method': 'dialogs.attachment',
        'api_key': 'YOUR_API_KEY',
        'attachment_id': 5,
    },
)

payload = response.json()['response']
if payload['msg']['err_code'] != 0:
    raise RuntimeError(payload['msg']['text'])

print(payload['data'])
const response = await fetch('https://api.dashamail.com/', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
  "method": "dialogs.attachment",
  "api_key": "YOUR_API_KEY",
  "attachment_id": 5
}),
});

const { response: payload } = await response.json();

if (payload.msg.err_code !== 0) throw new Error(payload.msg.text);
console.log(payload.data);

DashaMail хранит и защищает ваши данные на территории Российской Федерации

Подробнее...