версия от 2023-02-13
Группа методов позволяет создавать обращения в службу поддержки.
Адрес: https://restapi.plusofon.ru
Для авторизации используется токен пользователя, полученный методом авторизации в личном кабинете.
GET
api/v1/ticket
Метод позволяет получить список всех обращений в службу поддержки.
Body
state
stringtrue
открытое обращение
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()
В ответе возвращается массив обращений:
id
ИД обращения
status_ticket
статус обращения
subject
тема обращения
author
объект с данными автора обращения
/ id
ИД автора обращения
/ name
имя автора обращения
date
дата и время создания обращения
status
признак активности обращения
unread_messages
признак наличия новых сообщений
posts
массив с сообщениями из обращения
/ id
ИД сообщения
/ date
дата и время сообщения
/ text
текст сообщения
/ author
объект с данными автора сообщения
/ / id
ИД автора сообщения
/ / name
имя автора сообщения
/ attachments
массив вложенных файлов
Получен список обращений:
[
{
"id": "1234567",
"status_ticket": "Open",
"subject": "у меня всё поломалось",
"author": {
"id": "12345678",
"name": "user1@mail.ru"
},
"date": "2023-01-17 17:28:47",
"status": true,
"unread_messages": true,
"posts": [
{
"id": "178849",
"date": "2023-01-27 18:58:33",
"text": "<p>всё исправлено</p>",
"author": {
"id": "1234",
"name": "Инженер службы поддержки"
},
"attachments": []
},
{
"id": "178848",
"date": "2023-01-27 18:55:29",
"text": "<p>у меня всё поломалось, что делать?</p>",
"author": {
"id": "12345678",
"name": "user1@mail.ru"
},
"attachments": []
}
]
}
]
Передан некорректный признак статуса:
{
"message": "Undefined index: all",
"code": 400
}
GET
api/v1/ticket/{ticket_id}
Метод позволяет получить данные конкретного обращения.
Path
ticket_id
stringi
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
ИД обращения
status_ticket
статус обращения
subject
тема обращения
author
объект с данными автора обращения
/ id
ИД автора обращения
/ name
имя автора обращения
date
дата и время создания обращения
status
признак активности обращения
unread_messages
признак наличия новых сообщений
posts
массив с сообщениями из обращения
/ id
ИД сообщения
/ date
дата и время сообщения
/ text
текст сообщения
/ author
объект с данными автора сообщения
/ / id
ИД автора сообщения
/ / name
имя автора сообщения
/ attachments
массив вложенных файлов
Получены данные обращения:
{
"id": "1234567",
"status_ticket": "Open",
"subject": "у меня всё поломалось",
"author": {
"id": "12345678",
"name": "user1@mail.ru"
},
"date": "2023-01-17 17:28:47",
"status": true,
"unread_messages": true,
"posts": [
{
"id": "178849",
"date": "2023-01-27 18:58:33",
"text": "<p>всё исправлено</p>",
"author": {
"id": "1234",
"name": "Инженер службы поддержки"
},
"attachments": []
},
{
"id": "178848",
"date": "2023-01-27 18:55:29",
"text": "<p>у меня всё поломалось, что делать?</p>",
"author": {
"id": "12345678",
"name": "user1@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
Метод позволяет создать новое обращение в службу поддержки.
Body
subject
string
⁎ тема обращения
description
string
⁎ текст обращения
file
file
прикреплённый файл вложения
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": "1234568",
"status_ticket": "Open",
"subject": "Что-то пошло не так",
"author": {
"id": "12345678",
"name": "user1@mail.ru"
},
"date": "2023-01-18 12:32:41",
"status": true,
"unread_messages": false,
"posts": [
{
"id": "178858",
"date": "2023-01-18 12:32:41",
"text": "<p>Что-то пошло не так, но я не знаю что</p>",
"author": {
"id": "12345685",
"name": "user1@mail.ru"
},
"attachments": []
}
]
}
Не передан обязательный параметр (например, тема обращения):
{
"message": "The subject field is required",
"code": 400
}
PUT
api/v1/ticket/answer/{ticket_id}
Метод позволяет добавить в обращение ответ пользователя.
Path
ticket_id
stringi
Body
text
string
⁎ текст ответа
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": "1234568",
"status_ticket": "Open",
"subject": "Что-то пошло не так",
"author": {
"id": "12345678",
"name": "user1@mail.ru"
},
"date": "2023-01-18 12:32:41",
"status": true,
"unread_messages": false,
"posts": [
{
"id": "178859",
"date": "2023-01-18 12:35:00",
"text": "<p>и ещё что-то случилось</p>",
"author": {
"id": "12345685",
"name": "user1@mail.ru"
},
"attachments": []
},
{
"id": "178858",
"date": "2023-01-18 12:32:41",
"text": "<p>Что-то пошло не так, но я не знаю что</p>",
"author": {
"id": "12345685",
"name": "user1@mail.ru"
},
"attachments": []
}
]
}
POST
api/v1/ticket/attachment
Метод позволяет прикрепить в обращение файл.
Body
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
}