Tinkoff / invest-api-csharp-sdk

51 stars 19 forks source link
csharp hacktoberfest invest sdk tinkoffinvestapi

InvestApi .NET SDK

Build NuGet version (Tinkoff Trading OpenApi) NuGet version (Tinkoff Trading OpenApi)

Данный проект представляет собой инструментарий на языке C# для работы с grpc-интерфейсом торговой платформы Тинькофф Инвестиции.

Начало работы

Nuget

SDK доступен на nuget.org, для подключения добавьте в проект зависимость Tinkoff.InvestApi.

Сборка из исходников

Если вы хотите сами собрать пакет из исходников, а не использовать Nuget, вам понадобится:

Основной код сервисов генерируется по .proto файлам при сборке, для этого используются source generators. Proto файлы лежат в submodule. Поэтому необходимо клонировать репозиторий вместе с submodule, это можно сделать командой:

git clone --recurse-submodules https://github.com/Tinkoff/invest-api-csharp-sdk.git

Затем перейдите в директорию проекта и выполните следующую команду:

dotnet build -c Release

Документация

Подробную документацию по InvestApi можно найти по ссылке.

Быстрый старт

Для взаимодействия к InvestApi используется класс InvestApiClient, который является фасадом для grpc сервисов. Есть несколько способов его создания.

Создание через фабрику

Этот способ подходит для быстрого старта или для приложений без Generic Host, например WinForms или консольные приложения в старом стиле.

var client = InvestApiClientFactory.Create("<token>");

Создание через DI

Для проектов, использующих Generic Host, например AspNetCore или консольные приложения в новом стиле, можно зарегистрировать InvestApiClient в DI.

public void ConfigureServices(IServiceCollection services)
{
    services.AddInvestApiClient((_, settings) => settings.AccessToken = "<token>");
}

Далее InvestApiClient можно внедрить непосредственно в места использования.

class TradingBot 
{
    public TradingBot(InvestApiClient investApiClient)
    {
    }
}

Примеры

Примеры по отдельным функциям

Перед запуском, нужно добавить токен в переменную окружения TOKEN

Сложное приложение

Проект Tinkoff.InvestApi.Sample является примером использования SDK. При запуске будут использованы методы InvestApi, результаты будут выведены в консоль. Перед запуском сохраните свой токен в user secrets:

cd Tinkoff.InvestApi.Sample
dotnet user-secrets set "AccessToken" "<token>"

Где взять токен аутентификации?

В разделе инвестиций вашего личного кабинета tinkoff

У меня есть вопрос

Основной репозиторий с документацией — в нем вы можете задать вопрос в Issues и получать информацию о релизах в Releases. Если возникают вопросы по данному SDK, нашёлся баг или есть предложения по улучшению, то можно задать его в Issues.