API регистрации пользователей
API регистрации пользователей
Подскажите, есть ли ли API для регистрации пользоателей?
Last edited by A1ex on Tue Mar 19, 2013 6:46 am, edited 1 time in total.
Re: API регистрации пользователей
В панели есть полноценный API, но к сожалению, документация по работе с ним пока не готова. Попробую вкратце описать ключевые моменты, но если что-то не будет понятно, уточняйте.
В папке /usr/local/vesta/bin расположены скрипты, которые одновременно являются функциями API. Если нужно создать пользователя, нужен скрипт v-add-user, если нужно удалить базу данных, это сделает скрипт v-delete-database и так далее по аналогии. Другими словами, если вы сделаете ls /usr/local/vesta/bin, то сможете получить представление о доступных функциях.
Если запустить скрипт без параметров, он выдает краткую справку об использовании:
Каждый скрипт возвращает return_code. Если return_code равен 0, значит операция заверишалсь успешно. Любая другая цифра будет обозначать ошибку. Актуальную таблицу кодов возврата всегда можно найти в файле /usr/local/vesta/func/main.sh
API вдохновлено идеями UNIX и поэтому вся информация хранится в простых текстовых файлах. Каждый скрипт решает только одну задачу. В случае успешного завершения скрипта, на экран ничего не выводится. Если произошла ошибка, то скрипт сразу завершает свою работу и выводит сообщение на экран.
Вернемся к созданию пользователя и проверим код возврата.
По таблице выше 1 это E_ARGS, что означает недостаточное количество аргументов. Необязательные параметры заключены в квадтратные скобки. Для успешного создания пользователя нужно азадть всего 3 аргумента - имя пользователя, пароль и почтовый адрес. Если пакет не указан, то будет подставлен пакет по умолчанию, который называется default.
Помимо категории скриптов для создания и изменения, есть категория для отображения, такие срипты попадают под шаблон v-list-*. Скрипты могут отображать информацию в нескольких форматах. На данный момент поддерживается 3 формата: shell, plain и json. Первые два удобны для работы в командной строке.
Третий формат используется для работы веб-интерфейса, который для работы использует то же самое 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. Приведу несколько наиболее всотребованных примеров:
В папке /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]
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
Вернемся к созданию пользователя и проверим код возврата.
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
Code: Select all
[root@v-test ~]# v-add-user demo d3mo0p4ssw0rd [email protected]
[root@v-test ~]# echo $?
0
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
Теперь попробую конкретнее ответить на ваш вопрос по поводу создания пользователей. Тут возможны 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
-
- Posts: 2
- Joined: Mon Mar 18, 2013 12:54 am
Re: API регистрации пользователей
Ухты, очень интересовал етот вопрос, хочется связать сие чудо с билингом http://www.joonte.com/
Re: API регистрации пользователей
Ну раз другие панели поддерживаются, то и с добавлением плагина для vesta не должно возникнуть сложностей.
Re: API регистрации пользователей
skid, спасибо!
Re: API регистрации пользователей
А как установить модуль WHCMS для работы с vesta
Re: API регистрации пользователей
Вот инструкция по установке
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 регистрации пользователей
Обьясните мне) Установил сее чудо себе на сервер. Сразу решил написать микро-билинг)
Сделал регистрацию, авторизацию, покупку. Но вот пользователь не создается(уже 5 дней прошло). Результатом долгих мучений и экспериментов понял что проблема в source(команда на баше аналог include). Соответственно и api из браузера не вызывается. пробовал curl копал ваш скрипт. Но толку нет) Помогите с тем чтобы поднять этот гребанный api и скиньте оригинальный файл v-add-user
Зарание спасибо)
Сделал регистрацию, авторизацию, покупку. Но вот пользователь не создается(уже 5 дней прошло). Результатом долгих мучений и экспериментов понял что проблема в source(команда на баше аналог include). Соответственно и api из браузера не вызывается. пробовал curl копал ваш скрипт. Но толку нет) Помогите с тем чтобы поднять этот гребанный api и скиньте оригинальный файл v-add-user
Зарание спасибо)
Re: API регистрации пользователей
Не совсем понятно в чем причина. Вы используете POST запросы или запускаете скрипты напрямую?