Лонгрид 4 из 13Курс
Получить access_key и увидеть счёт
Содержание
Сначала создадим маленький REST-клиент. Все следующие REST-примеры будут использовать его: так авторизация и обработка ошибок не дублируются в каждом файле.
Базовый REST-клиент
Получите access_key
В тело запроса идёт поле secret — это secret_key из раздела Токены.
Запросите доступные счета
В ответе найдите account_ids и скопируйте номер счёта.
Получить информацию по портфелю
Запуск
Как читать ответ
TokenDetails возвращает не только счета, но и срок жизни конкретного access_key, режим readonly и разрешения на рыночные данные. Не зашивайте продолжительность токена в код: ориентируйтесь на expires_at или используйте поток обновления access_key в gRPC.
Денежные значения
В REST десятичное значение обычно приходит как объект:
Строка внутри объекта защищает точное десятичное представление. Для расчётов используйте decimal.js в JavaScript, Decimal в Python и десятичную библиотеку либо целочисленное представление минимальных единиц в Go. Преобразование в Number или float64 допустимо для приблизительного вывода, но не для расчёта цены заявки.
Частые ошибки
Симптом | Что проверить |
|---|---|
401 | secret_key или access_key недействителен, access_key истёк, заголовок собран неверно |
404 | Счёт отсутствует в account_ids этого токена |
429 | Программа слишком часто вызывает один метод |
account_ids пуст | При создании токена не выбран счёт или доступ изменился |
Что должно получиться
Частые вопросы
Почему access_key перестаёт работать через несколько минут?
Так и задумано: он живёт около 15 минут. Получайте новый по
expires_atиз ответа, а не по таймеру «раз в N минут».Можно ли положить secret_key прямо в заголовок запроса?
Нет. В заголовок идёт access_key. secret_key уходит только в тело запроса к
/v1/sessionsи больше нигде не появляется.Почему account_ids пуст?
При выпуске токена не выбран ни один счёт либо доступ к нему изменился. Проверьте настройки токена в разделе Токены.
Конец лонгрида