Page 1 of 2

API регистрации пользователей

Posted: Mon Mar 18, 2013 9:42 am
by A1ex
Подскажите, есть ли ли API для регистрации пользоателей?

Re: API регистрации пользователей

Posted: Mon Mar 18, 2013 2:53 pm
by skid
В панели есть полноценный API, но к сожалению, документация по работе с ним пока не готова. Попробую вкратце описать ключевые моменты, но если что-то не будет понятно, уточняйте.

В папке /usr/local/vesta/bin расположены скрипты, которые одновременно являются функциями API. Если нужно создать пользователя, нужен скрипт v-add-user, если нужно удалить базу данных, это сделает скрипт v-delete-database и так далее по аналогии. Другими словами, если вы сделаете ls /usr/local/vesta/bin, то сможете получить представление о доступных функциях.

Если запустить скрипт без параметров, он выдает краткую справку об использовании:

Code: Select all

[root@v-test ~]# v-add-user
Error: not enought arguments
Usage: v-add-user USER PASSWORD EMAIL [PACKAGE] [FNAME] [LNAME]
Каждый скрипт возвращает return_code. Если return_code равен 0, значит операция заверишалсь успешно. Любая другая цифра будет обозначать ошибку. Актуальную таблицу кодов возврата всегда можно найти в файле /usr/local/vesta/func/main.sh

Code: Select all

OK=0
E_ARGS=1
E_INVALID=2
E_NOTEXIST=3
E_EXISTS=4
E_SUSPENDED=5
E_UNSUSPENDED=6
E_INUSE=7
E_LIMIT=8
E_PASSWORD=9
E_FORBIDEN=10
E_DISABLED=11
E_PARSING=12
E_DISK=13
E_LA=14
E_FTP=15
E_SSH=16
E_DB=17
E_RRD=18
E_UPDATE=19
E_RESTART=20
API вдохновлено идеями UNIX и поэтому вся информация хранится в простых текстовых файлах. Каждый скрипт решает только одну задачу. В случае успешного завершения скрипта, на экран ничего не выводится. Если произошла ошибка, то скрипт сразу завершает свою работу и выводит сообщение на экран.

Вернемся к созданию пользователя и проверим код возврата.

Code: Select all

[root@v-test ~]# v-add-user
Error: not enought arguments
Usage: v-add-user USER PASSWORD EMAIL [PACKAGE] [FNAME] [LNAME]
[root@v-test ~]# echo $?
1
По таблице выше 1 это E_ARGS, что означает недостаточное количество аргументов. Необязательные параметры заключены в квадтратные скобки. Для успешного создания пользователя нужно азадть всего 3 аргумента - имя пользователя, пароль и почтовый адрес. Если пакет не указан, то будет подставлен пакет по умолчанию, который называется default.

Code: Select all

[root@v-test ~]# v-add-user demo d3mo0p4ssw0rd [email protected]
[root@v-test ~]# echo $?
0
Помимо категории скриптов для создания и изменения, есть категория для отображения, такие срипты попадают под шаблон v-list-*. Скрипты могут отображать информацию в нескольких форматах. На данный момент поддерживается 3 формата: shell, plain и json. Первые два удобны для работы в командной строке.

Code: Select all

[root@v-test ~]# v-list-users shell
USER       PACKAGE    U_DISK     U_BANDWIDTH  SUSPENDED  DATE
---------  ---------  ---------  ---------    ---------  ---------
admin      default    3          0            no         2013-02-11
test       default    1          0            no         2013-03-10
demo       default    0          0            no         2013-03-18
Третий формат используется для работы веб-интерфейса, который для работы использует то же самое API. Для работы веб-интерфейса в систему устанавливается дополнительный веб-сервер nginx и php-fpm, для обработки php. Все запросы интерфейса выполняются под пользователем admin, которому разрешено выполнять функции api через sudo.

Теперь попробую конкретнее ответить на ваш вопрос по поводу создания пользователей. Тут возможны 2 варианта:
1) Можно ипользовать api напрямую, выполняя скрипты в /usr/local/vesta/bin, как это делает веб-интерфейс
2) Можно воспользоваться wrapper-ом веб-интерфейса для доступа к api.

В большинстве случаев, второй вариант будет релевантнее. Дальше про него. Кстати, совсем недавно была реализована интеграция billing системы WHMSC на его wrapper-а. В модуле для whmcs реализованы ключевые функции, которые вероятно и вам интересны. Модуль умеет:
* создавать пользоватей
* удалять пользователей
* менять пароль пользователя
* добавлять web/mail/dns домены

К wrapper-у нужно обращаться POST запросами, передавая имя и пароль пользователя admin. Приведу несколько наиболее всотребованных примеров:

Code: Select all

# Создать пользователя demo
https://server-ip/api/?&user=admin&password=currentpwd&cmd=v-add-domain&arg1=demo&arg2=d3m0p4ssw0rd&[email protected]

# Добавить пользователю домен demo.vestacp.com
https://server-ip/api/?&user=admin&password=currentpwd&cmd=v-add-domain&arg1=demo&arg2=demo.vestacp.com

# Удалить пользователя включая его домены
https://server-ip/api/?&user=admin&password=currentpwd&cmd=v-delete-user&arg1=demo

Re: API регистрации пользователей

Posted: Mon Mar 18, 2013 5:02 pm
by COLOBOCman
Ухты, очень интересовал етот вопрос, хочется связать сие чудо с билингом http://www.joonte.com/

Re: API регистрации пользователей

Posted: Mon Mar 18, 2013 8:05 pm
by skid
Ну раз другие панели поддерживаются, то и с добавлением плагина для vesta не должно возникнуть сложностей.

Re: API регистрации пользователей

Posted: Tue Mar 19, 2013 2:22 am
by A1ex
skid, спасибо!

Re: API регистрации пользователей

Posted: Sun Jun 30, 2013 7:42 pm
by bisobisov
А как установить модуль WHCMS для работы с vesta

Re: API регистрации пользователей

Posted: Mon Jul 01, 2013 8:08 am
by skid
Вот инструкция по установке

Code: Select all

cd /home/wex/web/billing-whcms-site.ltdr/public_html/modules/servers
mkdir vesta
wget http://c.vestacp.com/0.9.8/rhel/whmcs-module.php -O vesta.php

Re: API регистрации пользователей

Posted: Tue Jul 02, 2013 3:38 am
by bisobisov
Спасибо!

Re: API регистрации пользователей

Posted: Thu Jan 02, 2014 3:13 pm
by rossyban
Обьясните мне) Установил сее чудо себе на сервер. Сразу решил написать микро-билинг)
Сделал регистрацию, авторизацию, покупку. Но вот пользователь не создается(уже 5 дней прошло). Результатом долгих мучений и экспериментов понял что проблема в source(команда на баше аналог include). Соответственно и api из браузера не вызывается. пробовал curl копал ваш скрипт. Но толку нет) Помогите с тем чтобы поднять этот гребанный api и скиньте оригинальный файл v-add-user

Зарание спасибо)

Re: API регистрации пользователей

Posted: Tue Feb 11, 2014 2:23 pm
by skid
Не совсем понятно в чем причина. Вы используете POST запросы или запускаете скрипты напрямую?