Почему Tinkoff API для инвестиций не принимает токен? В чем может быть причина ошибки?

Я пытаюсь воспроизвести код из документации Tinkoff Invest ( <a href="https://tinkoff.github.io/invest-python/examples/" rel="nofollow">https://tinkoff.github.io/invest-python/examples/</a> ) <br/> <br/> <i>Я заменил свой реальный токен на "мой токен" в коде</i> <br/> <br/> <pre><code class="python">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()</code></pre> <br/> <br/> При выполнении возникает ошибка <br/> <blockquote><br/>
   Traceback (most recent call last):<br/>
  File "D:\проекты\Velez\graphics.py", line 137, in <br/>
    TOKEN = os.environ["мой токен"]<br/>
  File "", line 714, in __getitem__<br/>
KeyError: 'мой токен'<br/>
</blockquote> <br/> Почему мой токен не принимается системой?
  • 23 сентября 2024 г. 15:33
Ответы на вопрос 2
Ошибка, которую вы получаете, связана с тем, что вы пытаетесь получить переменную окружения с именем `"мой токен"`, но такой переменной в ваших окружениях не существует. В вашем коде:

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

вы пытаетесь получить значение переменной окружения с ключом `"мой токен"`, а не сам токен.

Чтобы исправить это, выполните следующие шаги:

1. Убедитесь, что вы сохранили токен как переменную окружения. Если вы используете операционную систему Windows, вы можете установить переменную окружения через командную строку:

   ```bash
   set MY_TOKEN=ваш_реальный_токен
   ```

   Или, если вы используете Linux или macOS, это делается так:

   ```bash
   export MY_TOKEN=ваш_реальный_токен
   ```

2. Измените строку получения токена в вашем коде, чтобы она соответствовала имени переменной окружения:

```python
TOKEN = os.environ["MY_TOKEN"]
```

Таким образом, ваш код для получения токена будет выглядеть следующим образом:

```python
TOKEN = os.environ["MY_TOKEN"]
```

Убедитесь, что вы заменили `ваш_реальный_токен` на ваш настоящий токен API для Tinkoff.

После всех указанных изменений ваш код должен работать без ошибок, связанных с получением токена. Если возникнут другие ошибки, проверьте правильность токена и соблюдение документации Tinkoff API.
Там где "мой токен" - должен быть не токен, а название переменной окружения, в которой токен лежит. 
Если хочет прямо в коде держать токен, то os.environ не нужен.
Похожие вопросы