Есть потребность в связи по API с этим банком. Опыта такого не имел. Не знаю даже, с чего начать. Может кто-нибудь что-нибудь посоветовать?
Hitcher73
24.07.2022, 20:54
Начинайте сразу с API2
aabbam
26.07.2022, 12:28
Каким образом?
Hitcher73
26.07.2022, 20:33
У Тиньков есть как минимум API с личным кабинетом и 2 API для торговли. Это совершенно разные вещи. Вам какой надо?
Когда я говорил про API 2 я имел в виду API-инвест
Вот начало
https://tinkoff.github.io/investAPI/
Вот все методы API 2
https://tinkoff.github.io/investAPI/swagger-ui/
Зная как в 1с послать HTTP запрос с помощью вышеуказанных страниц
можно получить все что необходимо для анализа и торговли
aabbam
27.07.2022, 11:12
Так вроде и знаю, курсы валют с сайта центробанка получаю, но тут что-то никак.
Задача такова, чтобы не столько торговать пока, сколько графики получать или хотя бы котировки на момент данный. Достаточно для этого просто API с кабинетом личным?
Hitcher73
27.07.2022, 20:21
Тогда вышеописанных ссылок должно хватить. Я использовал вот эту библиотекуhttps://infostart.ru/1c/articles/709325/
Попоробовать с чего- то легкого . Например получить список валют .
Вот URL = "https://invest-public-api.tinkoff.ru";
Вот метод = "/rest/tinkoff.public.invest.api.contract.v1.InstrumentsS ervice/Currencies" .
Найди этот метод на страницеhttps://tinkoff.github.io/investAPI/swagger-ui/ и посмотри требования к запросу и как будет выглядеть ответ.
Вот данные = "{""instrumentStatus"": INSTRUMENT_STATUS_UNSPECIFIED}" которые нужно передать
где Токен - это токен -полученный в личном кабинете инвестиций
Мне хватило несколько дней чтобы с нуля во всем разобраться. Я даже не знал что такое HTTP запрос
ЗапросHTTP = Новый HTTPЗапрос(Сервис, Заголовки);
ЗапросHTTP.УстановитьТелоИз� �троки("{}", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИсп ользовать);
Результат = СоединениеHTTP.ВызватьHTTPМет� �д("GET", ЗапросHTTP);
Если Результат.КодСостояния <> 200 Тогда
Сообщить("Ошибка выполнения запроса. Код состояния "+Результат.КодСостояния);
Возврат;
КонецЕсли;
Данные = Результат.ПолучитьТелоКак� �троку();
Сообщить(Данные);
КонецПроцедуры
Сервер должен быть без https:// в Новый HTTPСоединение(Сервер,
borodаn
28.07.2022, 21:07
Ух ты, прикольно. В предыдущем сообщении в цитате больше, чем в оригинале, причем я ничего не дописывал. Когда жмешь "ответить с цитированием" в цитате появляется дополнительный текст, который не виден в оригинале, по крайней мере в моем браузере )
Короче, Сервер должен быть без https, просто Новый HTTPСоединение("invest-public-api.tinkoff.ru" ...
А тело и его тип вообще бессмысленно устанавливать.
Заголовки.Вставить("Content-Type", "application/json");
ЗапросHTTP.УстановитьТелоИз� �троки("{}", КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИсп ользовать);
Потому что когда делаешь ГЕТ, то 1С тело вообще не отправляет:
Результат = СоединениеHTTP.ВызватьHTTPМет� �д("GET", ЗапросHTTP);
borodаn
29.07.2022, 08:08
Походу это форум так работает. Теперь и мое сообщение подрезал, вчера еще полностью показывал. Но, думаю, если нажать кнопку "ответить с цитированием" - то тоже можно полностью прочитать мое предыдущее сообщение )