API
Общая информация
API запросы выполняются по http(s)-протоколу, в ответ приходит json. Если в ответе присутствует ключ error - произошла ошибка.
Тестировать API можно с консоли, например:
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl'
В ответ приходит сообщение об ошибке "запрос не авторизован":
{
"error" : "Вы не авторизованы",
"err_cod" : "unauthorized"
}
Вообще, если в ответе API будет присутствовать ключ error - это означает, что произошла ошибка и в данном ключе текст ошибки. В большинстве случаев, данный текст можно показывать абонентам. Может присутствовать ключ err_cod - код ошибки, который не зависит от локализации. Варианты:
unauthorized - либо не передана сессия, либо некорректная, либо устарела wrong_password - неудачная авторизация
Чтобы выполнить API-запрос необходимо сперва залогиниться под логином и паролем пользователя и получить идентификатор сессии, который использовать в cookie в последующих запросах.
В cookie в параметре nolang можно указать язык, например, nolang=UA
Авторизация
Логин: test email Пароль: 123
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?_uu=test%20email&_pp=123'
Если логин и пароль верные, приходит ответ:
{
"ses" : "hHuidO6MqAwTcqO/nZF4Qg",
"data" : {
"trust" : 1,
"id" : "357",
"role" : "user"
},
"result" : "auth ok"
}
Нас интересует параметр ses, который необходимо посылать во всех запросах в cookie с именем noses
Обратите внимание на параметр role - показывает кто авторизовался, админ или пользователь
Получение данных пользователя
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main' --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"
В полученном ответе:
usr: данные пользователя messages: сообщения для пользователя services: услуги, подключенные пользователю credits: кредиты last_pay: данные по последнему платежу
Например:
{
"messages" : [
{
"timestamp" : "1465391425",
"text" : "Здравствуйте. Это тестовое сообщение",
"time" : "Сегодня в 16:10",
"id" : "4344",
"lang_code" : "msg_from_adm"
}
],
"services" : [
{
"service_id" : "33",
"frozen" : null,
"text" : "21.01.2016 09:13 подключена услуга: 50 Mb unlim",
"id" : "1256",
"title" : "50 Mb unlim",
"time_start" : "1453360404",
"time_left" : -11944491,
"next_service_price" : "10",
"next_service_id" : "33",
"next_service_title" : "50 Mb unlim"
},{
...
}
}
Видно, что клиенту отправлено одно сообщение. При этом lang_code может принимать одно из следующих значений:
msg_from_adm - сообщение от администрации change_srv_order_u - клиент заказал услугу change_srv_order - заказал клиенту услугу кто-то иной (администратор, например)
Также видно, что подключено несколько услуг (2я и последующие заменены на троеточие). next_service_id - id услуги, которая будет подключена когда завершится текущая. Поскольку service_id = next_service_id - будет подключена таже услуга, которая действует в данный момент
Получение списка сообщений
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
--cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"
Параметр category:
491 - сообщение от клиента 480 - сообщение клиенту 481 - сообщение клиенту, клиент ознакомлен 482 - сообщение клиенту, блокирующее доступ до ознакомления 488 - многоадресное сообщение клиентам
Отправка сообщения администрации
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
--cookie "noses=hHuidO6MqAwTcqO/nZF4Qg" \
-X POST -d "msg=У меня не работает интернет"
История подключений
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_auth_log' \
--cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"
Если параметр end = 0 - подключение в данный момент активно