Диалоги
Переписка с подписчиками — Даша.Диалоги.
Это методы предыдущей версии API. Они работают и отключаться не будут, но новые интеграции лучше писать на REST API v2.
- GET dialogs.list
- GET dialogs.get
- POST dialogs.messages
- POST dialogs.reply
- POST dialogs.markRead
- POST dialogs.markUnread
- POST dialogs.close
- POST dialogs.open
- POST dialogs.unreadCount
- POST dialogs.attachment
dialogs.list #
GET
?method=dialogs.list
Получаем список диалогов
Параметры
| Параметр | Тип | Описание |
|---|---|---|
status | string | фильтр по статусу: open, closed, all. По-умолчанию: open |
unread_only | int | только непрочитанные: 1 или 0. По-умолчанию: 0 |
campaign_id | int | id кампании для фильтрации |
list_id | int | id адресной базы для фильтрации |
q | string | поисковый запрос (по email подписчика, теме письма или названию кампании) |
limit | int | количество результатов (1-200). По-умолчанию: 50 |
offset | int | смещение для пагинации. По-умолчанию: 0 |
Что возвращается
Массив диалогов с параметрами.
| Поле | Описание |
|---|---|
id | id диалога |
user_id | id аккаунта |
sub_id | id субаккаунта |
campaign_id | id кампании |
list_id | id адресной базы |
member_id | id подписчика |
subscriber_email | email подписчика |
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 обязательный | int | id диалога |
Что возвращается
Данные диалога.
| Поле | Описание |
|---|---|
id | id диалога |
user_id | id аккаунта |
sub_id | id субаккаунта |
campaign_id | id кампании |
list_id | id адресной базы |
member_id | id подписчика |
subscriber_email | email подписчика |
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 обязательный | int | id диалога |
limit | int | количество сообщений (1-200). По-умолчанию: 100 |
offset | int | смещение для пагинации. По-умолчанию: 0 |
Что возвращается
Массив сообщений и событий диалога в хронологическом порядке.
| Поле | Описание |
|---|---|
id | id сообщения |
dialog_id | id диалога |
direction | направление: in (входящее) или out (исходящее) |
author_user_id | id автора (для исходящих) |
from_email | email отправителя |
from_name | имя отправителя |
subject | тема письма |
body_text_clean | текстовое тело (без цитат) |
body_html_clean | HTML-тело (без цитат) |
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 обязательный | int | id диалога |
body_html обязательный | string | HTML-тело ответа |
body_text обязательный | string | текстовое тело ответа |
quote_original | int | цитировать исходное сообщение: 1 или 0. По-умолчанию: 1 |
Что возвращается
Данные отправленного сообщения.
| Поле | Описание |
|---|---|
message_id | id созданного сообщения |
dialog_id | id диалога |
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 обязательный | int | id диалога |
message_id | int | id конкретного сообщения (если не указано - помечает все) |
Что возвращается
Результат операции.
| Поле | Описание |
|---|---|
success | true при успехе |
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 обязательный | int | id диалога |
Что возвращается
Результат операции.
| Поле | Описание |
|---|---|
success | true при успехе |
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 обязательный | int | id диалога |
Что возвращается
Результат операции.
| Поле | Описание |
|---|---|
success | true при успехе |
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 обязательный | int | id диалога |
Что возвращается
Результат операции.
| Поле | Описание |
|---|---|
success | true при успехе |
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 обязательный | int | id вложения |
Что возвращается
Данные для скачивания вложения.
| Поле | Описание |
|---|---|
url | pre-signed URL для скачивания (действует 15 минут) |
filename | имя файла |
content_type | MIME-тип |
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);