@DMihey

Tinkoff api invest не принимает токен. В чём ошибка?

Пытаюсь воспроизвести код из документации Tinkoff invest (https://tinkoff.github.io/invest-python/examples/)

Везде ниже мой реальный токен заменён на "мой токен"

import os
from datetime import timedelta

from tinkoff.invest import CandleInterval, Client
from tinkoff.invest.utils import now

TOKEN = os.environ["мой токен"]


def main():
    with Client(TOKEN) as client:
        for candle in client.get_all_candles(
            figi="BBG004730N88",
            from_=now() - timedelta(days=365),
            interval=CandleInterval.CANDLE_INTERVAL_HOUR,
        ):
            print(candle)

    return 0


if __name__ == "__main__":
    main()

Выдаёт ошибку:

Traceback (most recent call last):
  File "D:\проекты\Velez\graphics.py", line 137, in <module>
    TOKEN = os.environ["мой токен"]
  File "<frozen os>", line 714, in __getitem__
KeyError: 'мой токен'

Почему он не принимает мой токен?
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 2
Там где "мой токен" - должен быть не токен, а название переменной окружения, в которой токен лежит.
Если хочет прямо в коде держать токен, то os.environ не нужен.
Ответ написан
Комментировать
grantur5707
@grantur5707
Full Stack Web Developer
У вас неправильное представление как работать с переменными окружения. В квадратных скобках должен быть не сам токен, а название переменной, задаваемой в .env. А дальше уже получайте значение с этой переменной в вашем коде;

from dotenv import load_dotenv
import os

load_dotenv()

TOKEN = os.getenv("TINKOFF_INVEST_TOKEN")


Пример .env:

TINKOFF_INVEST_TOKEN=мой токен
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы