Сделать запрос на основании кода

  • Автор темы Автор темы rosto4ik
  • Дата начала Дата начала

rosto4ik

Client
Регистрация
01.12.2016
Сообщения
20
Реакции
0
Баллы
1
Здравствуйте, есть пример запроса для языка php(вроде), нужно сделать такой же запрос в зенно.
Код:
$apikey='xxx';
$apisecret='xxx';
$nonce=time();
$uri='url?apikey='.$apikey.'&nonce='.$nonce;
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
$obj = json_decode($execResult);

Значит, что я сделал:

Я сделал гет запрос - url?apikey={-Variable.key-}&nonce={-Variable.nonce-}
В переменной key у меня apikey, nonce = время в юниксе. Но мне пишет, что ошибка а параметре apisign. Конкретно: {"success":false,"message":"APISIGN_NOT_PROVIDED","result":null}

Как я понял, это вот эти части кода:
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));

У меня есть аписикрет, который я могу применить. Но я не понимаю, куда нужно вставлять этот sign? Подскажите пожалуйста)
 
Ну если все правильно понял, тебе надо закодировать в sha-512 значение $uri с ключом $apisecret
http://zennolab.com/discussion/threads/pomogite-s-c-zakodirovat-s-pomoschju-hmac-sha512.38832/
И результат в GET запросе в header пихнуть в формате: apisign:результат закодированной строки
2017-07-18_18-25-57.png
 
Ну если все правильно понял, тебе надо закодировать в sha-512 значение $uri с ключом $apisecret
http://zennolab.com/discussion/threads/pomogite-s-c-zakodirovat-s-pomoschju-hmac-sha512.38832/
И результат в GET запросе в header пихнуть в формате: apisign:результат закодированной строки
Посмотреть вложение 21945
var input = "url?apikey=xx&nonce=(project.Variables["nonce"].Value)";
Я пытаюсь вставить переменную nonce, но выдает ошибку. Я что-то не так делаю?
 
Лучше через кубик "Обработка переменных" запиши нужную информацию, чтоб в 1 переменной хранилось всё, и в С# вставь так:
var input = project.Variables["url_to_send"].Value;
 
  • Оценить
Реакции: rosto4ik

Вложения

  • upload_2017-7-18_23-37-28.png
    upload_2017-7-18_23-37-28.png
    48 KB · Просмотры: 791
Последнее редактирование:
Лучше через кубик "Обработка переменных" запиши нужную информацию, чтоб в 1 переменной хранилось всё, и в С# вставь так:
var input = project.Variables["url_to_send"].Value;
Я всё сделал, как ты написал, но выдает ту же ошибку
 
Актуально, проблему не решил
 
Получилось авторизироваться в шаблоне должны быть директивы
using ZennoLab.OwnCode;
using System.Security.Cryptography;
 

Вложения

Получилось авторизироваться
Немного дополнил Ваш труд =)
Рекомендуют при подсчете HMAC-SHA512 для Bittrex использовать Encoding.ASCII
C#:
Развернуть Свернуть Копировать
var input = project.Variables["encode"].Value;
var secretKey = project.Variables["api_secret"].Value;
byte[] secretkeyBytes = Encoding.ASCII.GetBytes(secretKey);
byte[] inputBytes = Encoding.ASCII.GetBytes(input);
using (var hmac = new HMACSHA512(secretkeyBytes))
{
  byte[] hashValue = hmac.ComputeHash(inputBytes);
  return BitConverter.ToString(hashValue).Replace("-", "").ToLower();
}
...и отпечаток nonce лучше вытаскивать через cSharp, т.к. использование javascript в проектах "без браузера" не рекомендуется во избежание утечек памяти =)
C#:
Развернуть Свернуть Копировать
long ms = (long)((DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds);
return ms.ToString();
Дополнительно добавил форму ввода API Key и Secret Key + возможность подсчета баланса в выбранной фиатной паре по текущему курсу (GET запросом на cryptonator).
Парсинг балансов осуществляется для пар со значением баланса > 0
 

Вложения

Последнее редактирование:
А к ебиту как подключиться через API?
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)