1. Блог
  2. Начало работы с Finam Tr...
Начало работы с Finam Trade API

Начало работы с Finam Trade API

Шаг 1: Получение секретного ключа (API Token)

Первое, что вам понадобится — это секретный ключ. Он является вашим постоянным идентификатором для доступа к API.

  1. Авторизуйтесь на сайте Finam Trade API.
  2. Откройте раздел "Токены".
  3. Создайте новый токен и скопируйте его значение. Этот ключ будет использоваться для первоначальной аутентификации.

Важно: Храните этот ключ в безопасности и никогда не передавайте его третьим лицам.

Шаг 2: Аутентификация и получение JWT

Для выполнения большинства запросов к API вам потребуется временный JWT (JSON Web Token). Его можно получить, обменяв ваш секретный ключ с помощью метода Auth из сервиса AuthService.

Как это работает:

  1. Вы отправляете запрос к методу Auth, передав в нем ваш секретный ключ.
  2. В ответ сервер возвращает 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 незадолго до истечения срока действия текущего. Такой подход позволяет вашему приложению оставаться подключенным без дополнительных усилий.

Как это работает:

  1. Вы устанавливаете соединение с методом SubscribeJwtRenewal, передав ваш секретный ключ.
  2. Сервер будет поддерживать это соединение и отправлять в него новые 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 прост и безопасен:

  1. Получите секретный ключ в личном кабинете.
  2. Обменяйте его на временный JWT с помощью метода Auth.
  3. Используйте JWT для всех запросов, передавая его в заголовке Authorization.
  4. Подпишитесь на SubscribeJwtRenewal для автоматического обновления токена.

Теперь вы готовы к созданию собственных торговых стратегий с помощью Finam Trade API! Для получения более подробной информации ознакомьтесь с полной документацией по API.