AccessToken — это не API-ключ для запросов к моделям, и права у него шире.
- Храните его на сервере, в переменной окружения или в хранилище секретов.
- Никогда не передавайте его в браузер или клиентское приложение.
Получение AccessToken
1
Откройте настройки аккаунта
Войдите в консоль и откройте настройки аккаунта.
2
Откройте диалог системного токена
Выберите System Token и введите пароль от аккаунта, когда консоль его запросит.
3
Скопируйте AccessToken
Скопируйте AccessToken сразу после появления и надёжно сохраните. Новый AccessToken может сделать прежний недействительным, поэтому обновите его во всех сервисах, где он используется.
Эндпоинт
Authorization сам AccessToken, как в примерах ниже. Заголовки Accept: application/json и Content-Type: application/json необязательны. В cURL рекомендуем флаг --compressed, чтобы ответ распаковывался.
Ответ
Успешный запрос возвращает:
В зависимости от аккаунта ответ может содержать и другие поля. Читайте только нужные поля и позвольте парсеру игнорировать неизвестные.
Пересчёт квоты в доллары США
quota и used_quota возвращаются в единицах квоты, а не в долларах. 500 000 единиц квоты — это примерно 1 USD.
Используйте пересчёт для отображения. Фактическая стоимость запроса зависит от цены модели, группы токена и суммы, указанной в журнале вызовов. Для оповещений храните исходное значение
quota вместе с пересчитанной суммой, чтобы не терять точность.
Примеры кода
Один раз задайте AccessToken в терминале, заменив заглушку:- cURL
- cURL с jq
- Python
- Node.js
--compressed терминал может показать нечитаемые символы, а jq — ошибку Invalid numeric literal.Ошибки
401 Unauthorized
Authorization пуст, AccessToken неполный или уже недействителен, либо вместо AccessToken отправлен API-ключ для запросов к моделям. Каждую причину разбирает материал Как исправить ошибку 401 в API баланса.
Смотрите на код статуса вместе с телом ответа:
- Если заголовка
Authorizationнет совсем, API возвращает HTTP 401 сcode, равнымAUTH_REQUIRED. - Если AccessToken неверен или просрочен, возвращается HTTP 200 с
success: falseи сообщением о недействительном токене доступа.
success в скрипте, а не только код статуса.
403 Forbidden
Нечитаемый вывод или ошибка jq
Если cURL печатает нечитаемые символы, аjq сообщает Invalid numeric literal, сжатый ответ не был распакован. Добавьте к команде cURL флаг --compressed.
Рекомендации по мониторингу
Чтобы узнавать о низком балансе заранее, запускайте проверку этого эндпоинта по расписанию. Скрипт завершается со статусом 1, если остаток баланса ниже порога:LAOZHANG_ACCESS_TOKEN в скрипте или в crontab. При настройке:
- храните
LAOZHANG_ACCESS_TOKENв переменной окружения или в хранилище секретов; - задайте таймаут запроса, например 10 секунд;
- опрашивайте с умеренным интервалом: для оповещений о балансе почти никогда не нужны проверки каждую секунду;
- включайте в оповещение
quota, пересчитанный баланс,used_quota,request_count, время запроса и HTTP-статус; - никогда не пишите в логи заголовок
Authorization,access_tokenи другие конфиденциальные поля аккаунта.