Подключить приложение
Подключите приложение или ИИ-агента к вашему аккаунту ACDN. Войдите самостоятельно и подтвердите запрашиваемый доступ.
Вводите код только из приложения, которое вы только что решили подключить. Не подтверждайте коды, присланные другими людьми.
Разработчикам приложений
Обратитесь в ACDN для регистрации приложения и получения постоянного Client ID. Используйте один ID для всех пользователей и установок. Каждый пользователь разрешает доступ отдельно; для авторизации по коду client secret не нужен.
Токен доступа действует час. Приложение может продлевать доступ, пока вы его не отзовёте или токен обновления не истечёт после 30 дней без продления.
1. Запросите код авторизации
Отправьте зарегистрированный client_id и scope=account POST-запросом с form-urlencoded на адрес выдачи кода. На странице согласия отображается зарегистрированное название приложения. Некорректные данные возвращают 422, неизвестный Client ID — 401, отключённое приложение — 403. Доступ определяется текущими правами пользователя.
curl --request POST 'http://acdn.uz/api/oauth/device/code' \
--header 'Accept: application/json' \
--data-urlencode 'client_id=YOUR_CLIENT_ID' \
--data-urlencode 'scope=account'
2. Дождитесь согласия и получите токен
Откройте verification_uri_complete в браузере пользователя и дождитесь явного согласия. Опрашивайте адрес выдачи токена с device_code grant и полученным interval. Обрабатывайте authorization_pending; при slow_down увеличивайте интервал на 5 секунд.
curl --request POST 'http://acdn.uz/api/oauth/token' \
--header 'Accept: application/json' \
--data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:device_code' \
--data-urlencode 'client_id=YOUR_CLIENT_ID' \
--data-urlencode 'device_code=DEVICE_CODE'
3. Обратитесь к API
Передавайте токен в Authorization: Bearer <token>. Для продления используйте grant_type=refresh_token, client_id и refresh_token. Заменяйте оба сохранённых токена значениями из ответа.
Authorization: Bearer ACCESS_TOKEN
Accept: application/json
Запросы через Python CLI
Нужны Python 3 и curl. По умолчанию CLI использует зарегистрированное приложение ACDN Agent; для другого зарегистрированного приложения укажите --client-id. CLI запрашивает согласие при первом запуске и обновляет истёкшие токены доступа. Аргументы после -- передаются прямо в curl: --json для JSON-запросов, --form для загрузки файлов, --header для выбора формата ответа и --output для сохранения любого ответа в файл. Ответы и коды завершения curl возвращаются без изменений.
python3 acdn-agent.py call /api/user/domains
python3 acdn-agent.py call /api/user/domains -- --output domains.json
Доступ в пределах ваших прав
account — Действия от вашего имени в пределах прав аккаунта, включая покупки, оплату с баланса, удаление и доступные вам административные операции.
Приложение сможет действовать только в пределах прав вашего аккаунта. Подтверждение не предоставляет дополнительных полномочий.