API: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
 
(Не показані 2 проміжні версії цього користувача)
Рядок 1: Рядок 1:
==Общая информация==
В NoDeny+ используется два  API:
API запросы выполняются по http(s)-протоколу, в ответ приходит json. Если в ответе присутствует ключ error -  произошла ошибка.


Тестировать API можно с консоли, например:
* [[API для платежных терминалов]]
 
* [[API абонента|API]]
<source lang="bash">
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl'
</source>
 
В ответ приходит сообщение об ошибке "запрос не авторизован":
<source lang="javascript">
{
  "error" : "Вы не авторизованы",
  "err_cod" : "unauthorized"
}
</source>
 
 
Если в ответе API будет присутствовать ключ error - это означает, что произошла ошибка и в данном ключе текст ошибки. В большинстве случаев данный текст можно показывать абонентам. Может присутствовать ключ err_cod - код ошибки, который не зависит от локализации. Варианты:
 
    unauthorized - либо не передана сессия, либо некорректная, либо устарела
    wrong_password - неудачная авторизация
 
Чтобы выполнить API-запрос необходимо сперва залогиниться под логином и паролем пользователя и получить идентификатор сессии, который использовать в cookie  в последующих запросах.
 
В cookie в параметре nolang можно указать язык, например, nolang=UA
 
== Авторизация==
 
Логин: test email
Пароль: 123
 
<source lang="bash">
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?_uu=test%20email&_pp=123'
</source>
 
Если логин и пароль верные, приходит ответ:
 
<source lang="javascript">
{
  "ses" : "hHuidO6MqAwTcqO/nZF4Qg",
  "data" : {
      "trust" : 1,
      "id" : "357",
      "role" : "user"
  },
  "result" : "auth ok"
}</source>
 
Нас интересует параметр ses, который необходимо посылать во всех запросах в cookie с именем noses
 
Обратите внимание на параметр role - показывает кто авторизовался, админ или пользователь
 
==Получение данных пользователя==
 
<source lang="bash">
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_main' --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"
</source>
 
В полученном ответе:
 
    usr: данные пользователя
    services: услуги, подключенные пользователю
    credits: кредиты
    pays: платежи
 
Например:
 
<source lang="javascript">
{
      "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",
        },{
          ...
        }
}
</source>
 
Видно, что подключено несколько услуг (2я и последующие заменены на троеточие). next_service_id - id услуги, которая будет подключена когда завершится текущая. Поскольку service_id = next_service_id - будет подключена таже услуга, которая действует в данный момент
 
==Получение списка сообщений==
 
<source lang="bash">
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"
</source>
 
Параметр category:
    491 - сообщение от клиента
    480 - сообщение клиенту
    481 - сообщение клиенту, клиент ознакомлен
    482 - сообщение клиенту, блокирующее доступ до ознакомления
    488 - многоадресное сообщение клиентам
 
==Отправка сообщения администрации==
 
<source lang="bash">
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_message' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg" \
    -X POST -d "msg=У меня не работает интернет"
</source>
 
 
==История подключений==
 
<source lang="bash">
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_auth_log' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"
</source>
 
Если параметр end = 0 - подключение в данный момент активно
 
 
==Регистрация токена для пуш-уведомлений==
 
<source lang="bash">
curl 'https://app.nodeny-plus.com.ua/cgi-bin/noapi.pl?a=u_gcm&red_id=c-kkWVxpBpM:APA91bFZGzWjxjWtnX2m0iu4yq-koveiZCk' \
    --cookie "noses=hHuidO6MqAwTcqO/nZF4Qg"
</source>

Поточна версія на 21:32, 1 березня 2018

В NoDeny+ используется два API: