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

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? Подскажите пожалуйста)
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 955
Благодарностей
781
Баллы
113
а это случайно не пост запрос?
 

rosto4ik

Client
Регистрация
01.12.2016
Сообщения
20
Благодарностей
0
Баллы
1

rosto4ik

Client
Регистрация
01.12.2016
Сообщения
20
Благодарностей
0
Баллы
1

Jerard

Client
Регистрация
11.04.2013
Сообщения
506
Благодарностей
225
Баллы
43

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 263
Баллы
113
Знакомый код. Какого сервиса апи ?
 

rosto4ik

Client
Регистрация
01.12.2016
Сообщения
20
Благодарностей
0
Баллы
1
Ну если все правильно понял, тебе надо закодировать в 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, но выдает ошибку. Я что-то не так делаю?
 

Jerard

Client
Регистрация
11.04.2013
Сообщения
506
Благодарностей
225
Баллы
43
Лучше через кубик "Обработка переменных" запиши нужную информацию, чтоб в 1 переменной хранилось всё, и в С# вставь так:
var input = project.Variables["url_to_send"].Value;
 
  • Спасибо
Реакции: rosto4ik

rosto4ik

Client
Регистрация
01.12.2016
Сообщения
20
Благодарностей
0
Баллы
1

Вложения

Последнее редактирование:

rosto4ik

Client
Регистрация
01.12.2016
Сообщения
20
Благодарностей
0
Баллы
1
Лучше через кубик "Обработка переменных" запиши нужную информацию, чтоб в 1 переменной хранилось всё, и в С# вставь так:
var input = project.Variables["url_to_send"].Value;
Я всё сделал, как ты написал, но выдает ту же ошибку
 

rosto4ik

Client
Регистрация
01.12.2016
Сообщения
20
Благодарностей
0
Баллы
1
Актуально, проблему не решил
 

sidor800

Client
Регистрация
16.04.2013
Сообщения
120
Благодарностей
37
Баллы
28
Получилось авторизироваться в шаблоне должны быть директивы
using ZennoLab.OwnCode;
using System.Security.Cryptography;
 

Вложения

Leoneed

Client
Регистрация
03.05.2015
Сообщения
53
Благодарностей
38
Баллы
18
Получилось авторизироваться
Немного дополнил Ваш труд =)
Рекомендуют при подсчете 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
 

Вложения

Последнее редактирование:

proffyes

Client
Регистрация
16.07.2015
Сообщения
409
Благодарностей
19
Баллы
18
А к ебиту как подключиться через API?
 

sidor800

Client
Регистрация
16.04.2013
Сообщения
120
Благодарностей
37
Баллы
28

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