erhosen / gas-tinkoff-trades

Google Apps Script that imports your operations from Tinkoff Investments into Google Spreadsheets
MIT License
124 stars 28 forks source link

getPriceByTicker or getTrades - error 403 #5

Closed TimurTsedik closed 2 years ago

TimurTsedik commented 2 years ago

Exception: Request failed for https://api-invest.tinkoff.ru returned code 403 (строка 29).

Подскажите, что я делаю не так. Токен сформировал и вставил

PavelChaburko commented 2 years ago

У меня возникает та же самая ошибка

erhosen commented 2 years ago

403 означает что у вас проблема с правами Попробуйте перевыпустить OPENAPI_TOKEN на сайте тинькофф

PavelChaburko commented 2 years ago

Перевыпускал несколько раз вчера и сегодня. Пробовал выпускать токен для конкретного счета, либо для всех сразу. Каждый раз результат точно такой же.

erhosen commented 2 years ago

Возможно тинёк чего-то передеал в своём API, и теперь мой код работает невалидно :shrug:

Попробуй посмотреть среди форков: https://github.com/Bearkuty/gas-tinkoff-trades https://github.com/kdeyko/gas-tinkoff-trades

Возможно они уже решили эту проблему.

Btw, если удасться найти и пофиксить ошибку - pull requests much appreciated

555Russich commented 2 years ago

@TimurTsedik @PavelChaburko Возможно вы уже разобрались, но тинек выпустил api 2.0. Я заменил const OPENAPI_TOKEN = scriptProperties.getProperty('OPENAPI_TOKEN') на const OPENAPI_TOKEN = 'токен сюда' и вставил туда новый токен, который с полными правами. Также в this.baseUrl = 'https://api-invest.tinkoff.ru/openapi/' была другая ссылка на api (Я копировал все это с тинькоф журнала, где был пост автора).

При использовании функции getTrades выползает это: TypeError: Cannot read property 'value' of undefined (строка 130). Убираю .value у commision и функция работает, но без комиссии, соответственно.

Про onEdit(e). При добавлении аргумента Z1 вылезает синтаксическая ошибка

@ErhoSen Если автор еще занимается данным проектом, было бы очень интересно увидеть продолжение и как пофиксить о чем я написал

HiHat commented 2 years ago

У OpenAPI 2.0 новый адрес сервера (https://invest-public-api.tinkoff.ru/rest/) и другие методы (https://tinkoff.github.io/investAPI/swagger-ui/). Для него требуется серьезная адаптация кода автора. Я пока осилил только getPrice() и то только через старую функцию автора getFIGIbyTicker(), т.к. в новом API нельзя быстро получить figi по имени инструмента не зная его class_id. Код основанный на коде автора продолжает у меня нормально работать со старым API.

HiHat commented 2 years ago

@555Russich, посмотрите мои pull requests. Надеюсь, помогут избавиться от ошибок.

555Russich commented 2 years ago

@HiHat огромное спасибо, все работает. Сначала не увидел правда, где эта кнопка TI, а потом как понял) Еще бы хоткей к ней прикрутить, но это мелочи

erhosen commented 2 years ago

@HiHat если интересно развивать проект, могу добавить в мейнтейнеры :)

HiHat commented 2 years ago

@HiHat если интересно развивать проект, могу добавить в мейнтейнеры :)

Да, могу поделиться всеми доработками! Их не так много, т.к. меня интересовали только акции США на СПБ и ОФЗ и большая часть работы была по созданию аналогичного класса по работе с API Московской биржи, т.к. информацию по НКД и купонным выплатам только там можно было получить (в Tinkoff Invest API 2.0 тоже появилась).