Группа методов позволяет создавать обращения в службу поддержки.
Метод позволяет получить список всех обращений в службу поддержки.
GET
api/v1/ticket
https://restapi.plusofon.ru
возможные варианты параметра
state
:
true
открытое обращение
false
закрытое обращение
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/ticket" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"state":"true"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/ticket"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"state": "true"
}
fetch(url, {
method: "GET",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/ticket',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'state' => 'true',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/ticket'
payload = {
"state": "true"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()
В ответе возвращается объект ticket
:
@attributes
объект c базовыми свойствами обращения
/ id
ИД обращения
creationtime
дата и время создания обращения (в формате Unix-времени)
userorganization
ИД договора
subject
тема обращения
email
эл. адрес запрашивающего
replies
количество ответов
lastreplier
последний ответивший
lastactivity
дата и время последнего ответа (в формате Unix-времени)
Получен список обращений:
{
"ticket": {
"@attributes": {
"id": "22525",
"flagtype": "4"
},
"displayid": "22525",
"departmentid": "5",
"statusid": "4",
"priorityid": "2",
"typeid": "32",
"userid": "9747",
"userorganization": "57599",
"userorganizationid": "25",
"ownerstaffid": "0",
"ownerstaffname": [],
"fullname": "test409d@mail.ru",
"email": "test409d@mail.ru",
"lastreplier": "Оператор",
"subject": "test",
"creationtime": "1630069143",
"lastactivity": "1630070164",
"laststaffreply": "1630070164",
"lastuserreply": "1630069143",
"slaplanid": "3",
"nextreplydue": "0",
"resolutiondue": "1630070401",
"replies": "1",
"ipaddress": "10.10.80.124",
"creator": "2",
"creationmode": "4",
"creationtype": "1",
"isescalated": "1",
"escalationruleid": "3",
"templategroupid": "4",
"tags": "неизвестно",
"templategroupname": "Plusofon"
}
}
Передан некорректный признак статуса:
{
"message": "Undefined index: all",
"code": 400
}
Метод позволяет получить данные конкретного обращения.
GET
api/v1/ticket/{ticketId}
https://restapi.plusofon.ru
ticketId
curl -X GET \
-G "https://restapi.plusofon.ru/api/v1/ticket/12345" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}"
const url = new URL(
"https://restapi.plusofon.ru/api/v1/ticket/12345"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
fetch(url, {
method: "GET",
headers: headers,
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->get(
'https://restapi.plusofon.ru/api/v1/ticket/12345',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/ticket/12345'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('GET', url, headers=headers)
response.json()
В ответе возвращается:
id
ИД обращения
subject
тема обращения
date
дата и время создания обращения
status
признак активного статуса обращения (boolean)
unread_messages
признак наличия непрочитанных сообщений от службы поддержки (boolean)
posts
массив сообщений из обращения
/ id
ИД сообщения
/ date
дата и время сообщения
/ text
текст сообщения
/ author
объект с данными отправителя сообщения
/ / id
ИД отправителя
/ / name
имя или эл. адрес отправителя
/ attachments
массив — вложенные в сообщение файлы
Получены данные обращения:
{
"id": "12345",
"subject": "test 3",
"date": "2021-09-23 17:44:27",
"status": false,
"unread_messages": false,
"posts": [
{
"id": "43807",
"date": "2021-09-23 17:44:27",
"text": "test ticket 3",
"author": {
"id": "9740",
"name": "test704@mail.ru"
},
"attachments": []
}
]
}
Обращение не найдено:
{
"message": "HTTP\/1.1 404 Not Found\r\nServer: nginx\r\nDate: Tue, 31 Aug 2021 08:31:18 GMT\r\nContent-Type: text\/xml;charset=UTF-8\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nVary: Accept-Encoding\r\nX-Frame-Options: SAMEORIGIN\r\nX-XSS-Protection: 1\r\nX-Content-Type-Options: nosniff\r\n\r\nTicket not Found",
"code": 500
}
Метод позволяет создать новое обращение в службу поддержки.
POST
api/v1/ticket
https://restapi.plusofon.ru
curl -X POST \
"https://restapi.plusofon.ru/api/v1/ticket" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"subject":"rem","description":"tenetur","file":"ex"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/ticket"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"subject": "rem",
"description": "tenetur",
"file": "ex"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/ticket',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'subject' => 'rem',
'description' => 'tenetur',
'file' => 'ex',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/ticket'
payload = {
"subject": "rem",
"description": "tenetur",
"file": "ex"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе возвращается:
id
ИД обращения
subject
тема обращения
date
дата и время создания обращения
status
признак активного статуса обращения (boolean)
unread_messages
признак наличия непрочитанных сообщений от службы поддержки (boolean)
posts
массив сообщений из обращения
/ id
ИД сообщения
/ date
дата и время сообщения
/ text
текст сообщения
/ author
объект с данными отправителя сообщения
/ / id
ИД отправителя
/ / name
имя или эл. адрес отправителя
/ attachments
массив — вложенные в сообщение файлы
Обращение успешно создано:
{
"id": "23624",
"subject": "test 3",
"date": "2021-09-23 17:44:27",
"status": true,
"unread_messages": false,
"posts": [
{
"id": "43807",
"date": "2021-09-23 17:44:27",
"text": "test ticket 3",
"author": {
"id": "9740",
"name": "test704@mail.ru"
},
"attachments": []
}
]
}
Не передан обязательный параметр (например, тема обращения):
{
"message": "The subject field is required",
"code": 400
}
Метод позволяет добавить в обращение ответ пользователя.
PUT
api/v1/ticket/answer/{ticketId}
https://restapi.plusofon.ru
ticketId
path
ИД обращения
file
file
прикреплённый файл вложения
curl -X PUT \
"https://restapi.plusofon.ru/api/v1/ticket/answer/12345" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"text":"neque","file":"possimus"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/ticket/answer/12345"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"text": "neque",
"file": "possimus"
}
fetch(url, {
method: "PUT",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->put(
'https://restapi.plusofon.ru/api/v1/ticket/answer/12345',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'text' => 'neque',
'file' => 'possimus',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/ticket/answer/12345'
payload = {
"text": "neque",
"file": "possimus"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('PUT', url, headers=headers, json=payload)
response.json()
В ответе возвращается:
id
ИД обращения
subject
тема обращения
date
дата и время создания обращения
status
признак активного статуса обращения (boolean)
unread_messages
признак наличия непрочитанных сообщений от службы поддержки (boolean)
posts
массив сообщений из обращения
/ id
ИД сообщения
/ date
дата и время сообщения
/ text
текст сообщения
/ author
объект с данными отправителя сообщения
/ / id
ИД отправителя
/ / name
имя или эл. адрес отправителя
/ attachments
массив — вложенные в сообщение файлы
Ответ успешно добавлен в обращение:
{
"id": "23624",
"subject": "test 3",
"date": "2021-09-23 17:44:27",
"status": true,
"unread_messages": false,
"posts": [
{
"id": "43807",
"date": "2021-09-23 17:44:27",
"text": "test ticket 3",
"author": {
"id": "9740",
"name": "test704@mail.ru"
},
"attachments": []
}
]
}
Метод позволяет прикрепить в обращение файл.
POST
api/v1/ticket/attachment
https://restapi.plusofon.ru
ticketId
integer
ИД обращения
ticketPostID
integer
ИД сообщения в обращении
contents
string
файл, закодированный в Base64
curl -X POST \
"https://restapi.plusofon.ru/api/v1/ticket/attachment" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "Client: 10553" \
-H "Authorization: Bearer {token}" \
-d '{"ticketId":1,"filename":"quo","ticketPostID":15,"contents":"nemo"}'
const url = new URL(
"https://restapi.plusofon.ru/api/v1/ticket/attachment"
);
let headers = {
"Content-Type": "application/json",
"Accept": "application/json",
"Client": "10553",
"Authorization": "Bearer {token}",
};
let body = {
"ticketId": 1,
"filename": "quo",
"ticketPostID": 15,
"contents": "nemo"
}
fetch(url, {
method: "POST",
headers: headers,
body: body
})
.then(response => response.json())
.then(json => console.log(json));
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://restapi.plusofon.ru/api/v1/ticket/attachment',
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Client' => '10553',
'Authorization' => 'Bearer {token}',
],
'json' => [
'ticketId' => 1,
'filename' => 'quo',
'ticketPostID' => 15,
'contents' => 'nemo',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
import requests
import json
url = 'https://restapi.plusofon.ru/api/v1/ticket/attachment'
payload = {
"ticketId": 1,
"filename": "quo",
"ticketPostID": 15,
"contents": "nemo"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Client': '10553',
'Authorization': 'Bearer {token}'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()
В ответе может возвращаться:
success
признак успешно выполненного запроса
message
сообщение об ошибке
Файл успешно добавлен в обращение:
{
...
}
Не передан обязательный параметр (например, ИД обращения):
{
"message": "The ticketId field is required",
"code": 400
}