Основное API

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку

Общая информация

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 'http://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 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main' --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"

В полученном ответе:

   usr: данные пользователя
   services: услуги, подключенные пользователю
   credits: кредиты
   pays: платежи

Например:

{
      "services" : [
         {
             "id" : "1537",   
             "service_id" : "33",
             "next_service_id" : "33",
             "auto_renew" : "0",
             "tm_start" : "1468324004",
             "tm_end" : "1783684004",
             "grp_list" : ",1,",
             "pay_id" : "4544",
             "category" : "",
             "module" : "unlim",
             "uid" : "357",
             "no_renew" : "1",
             "description" : "50 Mb unlim",
             "tags" : ",speed=123,",
             "finish_count" : "1",
             "price" : "10",
         },{
           ...
         }
}

Видно, что подключено несколько услуг (2я и последующие заменены на троеточие). next_service_id - id услуги, которая будет подключена когда завершится текущая. Поскольку service_id = next_service_id - будет подключена таже услуга, которая действует в данный момент

Получение списка сообщений

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"

Параметр category:

   491 - сообщение от клиента
   480 - сообщение клиенту
   481 - сообщение клиенту, клиент ознакомлен
   482 - сообщение клиенту, блокирующее доступ до ознакомления
   488 - многоадресное сообщение клиентам

Отправка сообщения администрации

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg" \
    -X POST -d "msg=У меня не работает интернет"

История подключений

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_auth_log' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"

Если параметр end = 0 - подключение в данный момент активно

Регистрация токена для пуш-уведомлений

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_gcm&red_id=c-kkWVxpBpM:APA91bFZGzWjxjWtnX2m0iu4yq-koveiZCk' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"

В результате параметр reg_id должен записаться в таблицу notifications_users

Создание заявки на оплату в платежной системе Fondy

curl 'http://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_fondy&amt=100' \
    --cookie "noses=OIcU//chVAcIQH1AX158Ww"

Будет возвращен id платежа-заявки для оплаты