Список методов

Адреса всех методов указаны относительно имени домена, на который идет обращение. Обращаться можно любым http-методом.

Обязательные параметры для всех запросов:

application_id - ключ приложения (открытый или закрытый)

Если передан закрытый ключ, то ЦАС будет доверять запросу, а если передан открытый ключ, то не будет и потребует дополнительный параметр. См. ниже про доверие.

Для некоторых запросов в url присутствует параметр id_type. Нужен для поиска пользователя по одному из следующих критериев:

Если в url присутствует id_type, то дополнительным параметром нужен еще передать значение этого параметра в запросе. Т.е. если обращение идет с id_type = email, то нужно передать дополнительно еще параметр email.

Доверие к запросам

Существует разница между тем какой ключ приложения был передан с запросом - открытый или закрытый.

Если передан открытый ключ, то ЦАС не доверяет этому запросу и потребует передать дополнительным параметром еще и id валидной сессии авторизованного пользователя (session_id). Его можно получить после авторизации.

Иными словами, не авторизовавшись нельзя воспользоваться некоторыми методами.

Какие методы являются открытыми, а какие закрытыми, см. в описании к каждому методу.

Если передан закрытый ключ, то запрос считается доверенным и id сессии не требуется.

Методы

Работа с пользователем

| Метод | Назначение |
|-----------------------------------------------------------------------|-----------------------------------------------------------|
| auth | Авторизация по email и паролю |
| authnative | Авторизация по зашифрованной строке (по рег данным) |
| reg | Регистрация |
| passchange | Смена пароля |
| isemailconfirmed | Проверка подтвержден ли email |
| islinkedtoapplication | Проверка привязан ли пользователь к данному приложению |
| confirm | Подтверждение пользователя |
| reconfirm | Переподтверждение пользователя |
| emailchange | Смена email |
| phonechange | Смена номера телефона |
| getacc | Получение id пользователя по email |
| profile | Получение данных профиля пользователя |
| update | Обновление данных профиля пользователя |
| password_recovery_get_key | Первый шаг восстановления пароля - запрос ключа |
| password_recovery_set_password | Второй шаг восстановления пароля - задание нового |
| addapp | Привязать приложение |
| getapps | Получить список привязанных приложений |
| getconfirmationcode | Получить код подтверждения |
| extendsession | Продлить сессию |
| sessionexists | Проверка существует ли сессия (и не закончилась) |
| issessionactive | Проверка активна ли сессия (в том числе sso) |
| addcontact | Добавить контакт |
| makemain | Сделать контакт основным |
| bind | Связать учетки |
| contactchange | Изменить значение контакта |
| removecontact | Удалить контакт |

Работа с рег данными

| | |
|---|---|
|getPKC| Получить рег данные|
|addReg| Добавить связку рег данных|
|addRegString| Добавить связку рег данных через зашифрованную строку|
|getRegOwners| Получить владельцев связки|
|deactivateReg| Деактивировать связку|
|deleteReg| Удалить связку|

Другое

| | |
|---|---|
|decodeString| Расшифровать строку с рег данными|
|regions| Получение списка регионов|
|getapplicationid| Получение закрытого ключа приложения по открытому (только ЕЛК)|

формат ответа

Ответ приходит в формате json в следующем виде:

success => 1 или 0

Если success = 1, это означает, что запрошенные данные отданы успешно и они лежат под ключом result.

Если success = 0, это означает, что произошла какая-то ошибка и она лежит под ключом error. В некоторых случаях вместе с error идут дополнительные данные об ошибке, они лежат под ключом data.

Пример:

Успех

{
  success => 1,
  result => ...
}

Ошибка

{
  success => 0,
  error => ...
}

Формат ошибки

'error' => {field => [codename]}

field - параметр, к которому относится ошибка

codename - программное название ошибки

JSONP

ЦАС поддерживает формат jsonp для запросов из клиентского javascript.

Обычно большинство библиотек типа jquery уже умеют это делать, но для тех, кто не умеет, нужно дополнительно отправить параметр callback=FUNCTION_NAME.

О том что вообще такое JSONP, читаем тут.

Виды ошибок