Api с биржей binance, не могу получить данные с авторизацией.

1. user647014_pifago 04.02.18 21:52 Сейчас в теме
Не получается подключится к бирже binance через API.
Процедуру написал, пробовал по всякому, не получается.
Если у кого есть опыт, подскажите в чем проблема.
(код при загрузке авто заменой был изменен, оригинал в вложенном файле)


Функция  ПолучитьБаланс_Binance() Экспорт
	
 Перем Соответствие;
 
 apikey 	= "xCi3ylcIO28UxIZvW5dcJbPLOlCBB03qQmqhV1dQsWYqphFkgxIhQOhQxPG­jAQrk";
 apisecret 	= "qQh3rsUi8gBDuqrGXxLfGdrVnPh86CYov2G8TGEfbui2SvjJ1GnoBdhSci7­xRmMM"; 
 
 unixtime = Формат(УниверсальноеВремя(ТекущаяДата()) - дата(1970,1,1,1,0,0), "ЧГ=0")+"559";
 СтрокаДляШифрования = "×tamp="+unixtime;
 sign = hash_hmac_sha256(СтрокаДляШифрования,apisecret);

 SSL = Новый ЗащищенноеСоединениеOpenSSL;
 HTTPСоединение_btce = Новый HTTPСоединение("api.binance.com",,,,,10, SSL);
 
 ЗаголовокHTTP = Новый Соответствие();
 ЗаголовокHTTP.Вставить("APIKEY", apikey); 
 //ЗаголовокHTTP.Вставить("Key", apikey);
 ЗаголовокHTTP.Вставить("Connection", "Keep-alive");
 ЗаголовокHTTP.Вставить("Host", "api.binance.com");
 ЗаголовокHTTP.Вставить("User-Agent","Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64)");
 ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded;");
 ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
 ЗаголовокHTTP.Вставить("Accept", "application/json, text/javascript, */*; q=0.01");
 
 Запрос = Новый HTTPЗапрос("/api/v3/account/" ,ЗаголовокHTTP);
 Запрос.УстановитьТелоИзСтроки( "×tamp="+unixtime+"&signature="+sign );
 
 Ответ = HTTPСоединение_btce.ОтправитьДляОбработки(Запрос); 
 ЧтениеJSON = Новый ЧтениеJSON; 
 ЧтениеJSON.ОткрытьПоток( Ответ.ПолучитьТелоКакПоток() );
 ПрочитатьJSONВСоответствие(ЧтениеJSON, Соответствие);
 ЧтениеJSON.Закрыть();
 
 Возврат Соответствие["balances"];
	
КонецФункции

Функция hash_hmac_sha256(Строка, СекретныйКлюч)

    Текст = Новый COMОбъект("System.Text.UTF8Encoding");
    Криптография = Новый COMОбъект("System.Security.Cryptography.HMACSHA256");
    Криптография.Key = Текст.GetBytes_4(СекретныйКлюч);
    ХешБайт = Криптография.ComputeHash_2(Текст.GetBytes_4(Строка)).Выгрузить();
	Хеш = ConvToHexString(ХешБайт);
    Возврат Хеш;
	
КонецФункции

Функция ConvToHexString(ХешБайт)

	//oD = Новый COMОбъект("MSXML2.DOMDocument");
	//  
	//oD.LoadXML("<root />");
	//oD.DocumentElement.DataType = "bin.Hex";
	//oD.DocumentElement.nodeTypedValue = vIn;
	//Результат = СтрЗаменить(oD.DocumentElement.Text, Символы.ПС, "");
	
    Соотв16 = Новый Соответствие;
    Соотв16.Вставить(0 , "0");
    Соотв16.Вставить(1 , "1");
    Соотв16.Вставить(2 , "2");
    Соотв16.Вставить(3 , "3");
    Соотв16.Вставить(4 , "4");
    Соотв16.Вставить(5 , "5");
    Соотв16.Вставить(6 , "6");
    Соотв16.Вставить(7 , "7");
    Соотв16.Вставить(8 , "8");
    Соотв16.Вставить(9 , "9");
    Соотв16.Вставить(10, "a");
    Соотв16.Вставить(11, "b");
    Соотв16.Вставить(12, "c");
    Соотв16.Вставить(13, "d");
    Соотв16.Вставить(14, "e");
    Соотв16.Вставить(15, "f");
	
    Хеш = "";
    Для Каждого Байт Из ХешБайт Цикл
        Чс = Цел(Байт/16);
        Хеш = Хеш + Прав("0" + Соотв16.Получить(Чс) + Соотв16.Получить(Байт-Чс*16), 2);
    КонецЦикла;
	
    Возврат Хеш;

КонецФункции

Показать
Прикрепленные файлы:
ПолезныеФункции2.epf
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dimasikus31 86 19.02.18 01:08 Сейчас в теме
здравствуйте, Александр! скачал обработку, указал свой ключ и секретку, но возвращается вот такой ответ 404 Not found, что я делаю не так? либо если не жалко - поделитесь рабочим кодом. в сети практически отсутствуют примеры подключения к бинанс из 1С, а http запросы для меня пока новая тема. Спасибо
3. sir 11 09.11.18 21:55 Сейчас в теме
вот так заработало

unixtime = Формат((УниверсальноеВремя(ТекущаяДата()) - '19700101')*1000+500,"ЧГ=");
СтрокаДляШифрования = "timestamp="+unixtime+"&recvWindow=5000";
	        	
sign = hash_hmac_sha256(СтрокаДляШифрования,apisecret);
		
АдресРесурса = "api/v3/account";
АдресРесурса = АдресРесурса+"?timestamp="+unixtime+"&signature="+sign+"&recvWindow=5000";
		
SSL = Новый ЗащищенноеСоединениеOpenSSL;
HTTPСоединение_btce = Новый HTTPСоединение("api.binance.com",,,,,10, SSL);
	
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("X-MBX-APIKEY", apikey); 
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
	   	
Запрос = Новый HTTPЗапрос(АдресРесурса ,ЗаголовокHTTP);
Ответ = HTTPСоединение_btce.Получить(Запрос);
 Сообщить(Ответ.ПолучитьТелоКакСтроку());
Показать
romankoav; sansys; +2 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)