.png)
Начало работы с Finam Trade API
Шаг 1: Получение секретного ключа (API Token)
Первое, что вам понадобится — это секретный ключ. Он является вашим постоянным идентификатором для доступа к API.
- Авторизуйтесь на сайте Finam Trade API.
- Откройте раздел "Токены".
- Создайте новый токен и скопируйте его значение. Этот ключ будет использоваться для первоначальной аутентификации.
Важно: Храните этот ключ в безопасности и никогда не передавайте его третьим лицам.
Шаг 2: Аутентификация и получение JWT
Для выполнения большинства запросов к API вам потребуется временный JWT (JSON Web Token). Его можно получить, обменяв ваш секретный ключ с помощью метода Auth из сервиса AuthService.
Как это работает:
- Вы отправляете запрос к методу
Auth, передав в нем ваш секретный ключ. - В ответ сервер возвращает JWT, который будет действителен в течение ограниченного времени.
Пример запроса (gRPC):
// proto/grpc/tradeapi/v1/auth/auth_service.proto
service AuthService {
// Получение JWT токена из API токена
rpc Auth(AuthRequest) returns (AuthResponse);
}
message AuthRequest {
// API токен (secret key)
string secret = 1;
}
message AuthResponse {
// Полученный JWT-токен
string token = 1;
}Этот JWT необходимо использовать для аутентификации всех последующих запросов.
Шаг 3: Выполнение запросов к API
Получив JWT, вы можете выполнять запросы к другим сервисам API, таким как OrdersService (торговые операции) или MarketDataService (рыночные данные).
Для этого необходимо передавать полученный токен в заголовке каждого запроса в формате Authorization: Bearer <ваш_jwt_токен>.
Пример (псевдокод):
headers = {
"Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
response = GET("https://api.finam.ru/v1/accounts/{account_id}", headers=headers)Шаг 4: Автоматическое обновление JWT
JWT имеет ограниченный срок действия, поэтому его нужно периодически обновлять. Вместо того чтобы каждый раз вручную вызывать метод Auth, вы можете использовать подписку SubscribeJwtRenewal.
Это gRPC-стрим, который будет автоматически присылать вам новый JWT незадолго до истечения срока действия текущего. Такой подход позволяет вашему приложению оставаться подключенным без дополнительных усилий.
Как это работает:
- Вы устанавливаете соединение с методом
SubscribeJwtRenewal, передав ваш секретный ключ. - Сервер будет поддерживать это соединение и отправлять в него новые JWT по мере необходимости.
Пример подписки (gRPC):
// proto/grpc/tradeapi/v1/auth/auth_service.proto
service AuthService {
// ...
// Подписка на обновление JWT токена. Стрим метод
rpc SubscribeJwtRenewal(SubscribeJwtRenewalRequest) returns (stream SubscribeJwtRenewalResponse);
}
message SubscribeJwtRenewalRequest {
// API токен (secret key)
string secret = 1;
}
message SubscribeJwtRenewalResponse {
// Полученный JWT-токен
string token = 1;
}Использование этой подписки — лучший способ обеспечить бесперебойную работу вашего приложения.
Заключение
Процесс начала работы с Finam Trade API прост и безопасен:
- Получите секретный ключ в личном кабинете.
- Обменяйте его на временный JWT с помощью метода
Auth. - Используйте JWT для всех запросов, передавая его в заголовке
Authorization. - Подпишитесь на
SubscribeJwtRenewalдля автоматического обновления токена.
Теперь вы готовы к созданию собственных торговых стратегий с помощью Finam Trade API! Для получения более подробной информации ознакомьтесь с полной документацией по API.