Вверх ↑
Ответов: 24
Рейтинг: 0
#1: 2019-12-01 08:33:59 ЛС | профиль | цитата
Благодарствую, но такой метод не подходит.

У меня может обслуживаться по многу пар API ключей. И логинить их в IE не возможно.
Мне нужна настоящая авторизация, с подписью HMAC, там выше в теме уже всё готово и оно работает, просто в хелпе они описали авторизацию для GET, и тупо абзац с намёком мол "для POST сделайте всё тоже самое".
Но это приводит в замешательство, потому что у POST куча отличий, типа разделители переменных и заголовки другие, и сложно понять как сформировать подпись и даже как её корректно прикрепить не написано в API.

про POST они сказали пару слов всего:

Required and optional parameters: Each action has a set of required and optional parameters that define the API call.This shows in the API reference.Important Reminder: Every param in a GET method should be included in signature calculation, and only AccessKeyId, SignatureMethod, SignatureVersion, Timestamp should be included in signature calculation for a POST method.


--- Добавлено в 2019-12-01 08:36:43

это API позволяет работать по HTTP без "S", по этому вроде должно быть не сложно, для тех кто понимает в этом
https://github.com/huobiapi/API_Docs_en/wiki/Signing_API_Requests

--- Добавлено в 2019-12-01 09:09:07

Вот схемка-заготовка, как в теории всё должно было выглядеть, но оно конечно же не работает:


Add(MainForm,4316327,84,168)
{
Width=1039
Height=823
SavePosName="awkertgnvaeilrtlv"
Position=1
}
Add(Button,3906501,259,154)
{
Left=10
Top=10
Width=80
Height=25
link(onClick,15671646:doEvent1,[])
}
Add(Memo,1227602,1260,161)
{
Left=5
Top=130
Width=1000
Height=315
ScrollBars=3
}
Add(Time,3467125,637,98)
{
Format="Y-M-D h:m:s"
Point(DateTime)
}
Add(Label,11494199,168,77)
{
Left=110
Top=15
Width=69
Height=17
Caption="AccessKeyId:"
}
Add(Edit,765236,903,28)
{
Left=190
Top=10
Width=370
Text="ghxertfvbf-ae071afe-585ebe3a-bcd73"
}
Add(Label,15772714,168,147)
{
Left=110
Top=63
Width=44
Height=17
Caption="Order-id:"
}
Add(Memory,14125193,840,161)
{
link(onData,1388585:doString,[])
}
Add(HMAC,5918340,980,161)
{
Algorithm=2
Key="f817d802-1b5e62de-2aac943c-9a9a8"
link(onResult,5699817:doConvert,[])
link(Data,1388585:FString,[(986,140)(948,140)(948,205)(909,205)])
link(Key,7249632:Text,[])
}
Add(FormatStr,1388585,903,161)
{
DataCount=4
Mask="POST\napi.huobi.pro\norder/orders\nAccessKeyId=%1&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=%4"
Point(FString)
link(onFString,5918340:doCalcHMAC,[])
link(Str1,765236:Text,[])
link(Str4,14125193:Value,[(930,145)(887,145)(887,205)(846,205)])
}
Add(Charset,1075868,1127,161)
{
Type=12
link(onCharset,8882164:doStrCat,[])
}
Add(StreamConvertor,5699817,1029,161)
{
Mode=3
link(onResult,10685303:doCharset,[])
}
Add(Charset,10685303,1078,161)
{
Type=5
link(onCharset,1075868:doCharset,[])
}
Add(Edit,7490427,371,91)
{
Left=190
Top=85
Width=370
Text="+2"
}
Add(DateConvertor,7965468,742,161)
{
Mode=9
Format="yyyy-MM-ddTHH:mm:ss"
link(onResult,9089547:doCharset,[])
}
Add(DoData,13076185,490,161)
{
link(onEventData,439421:doConvert,[])
link(Data,3279260:Var3,[(496,138)])
}
Add(DateConvertor,439421,539,161)
{
Mode=8
Format="HH"
link(onResult,8757127:doOperation,[])
}
Add(Charset,9089547,791,161)
{
Type=12
link(onCharset,14125193:doValue,[])
}
Add(Math,12997737,644,161)
{
OpType=1
link(onResult,12368625:doWork2,[])
link(Op1,2464389:Var2,[])
}
Add(Math,8757127,588,161)
{
OpType=35
Op2=0.000000001
link(onResult,12997737:doOperation,[])
}
Add(Label,3425802,168,182)
{
Left=110
Top=87
Width=53
Height=17
Caption="Timezone:"
}
Add(Math,7617945,371,154)
{
OpType=34
link(onResult,6816478:doCompare,[])
link(Op1,14121290:Var2,[])
}
Add(If_else,6816478,420,154)
{
Op2=Integer(-1)
link(onTrue,2121148:doData,[(460,160)(460,223)])
link(onFalse,13076185:doData,[])
}
Add(GetDataEx,14121290,371,133)
{
link(Data,7490427:Text,[])
}
Add(DoData,2121148,469,217)
{
link(onEventData,9240877:doTrim,[])
link(Data,3279260:Var2,[])
}
Add(GetDataEx,3279260,469,133)
{
Angle=3
link(Data,14121290:Var3,[])
}
Add(Trim,9240877,518,217)
{
Char="-"
Mode=1
link(onTrim,9155591:doConvert,[])
}
Add(DateConvertor,9155591,567,217)
{
Mode=8
Format="HH"
link(onResult,11703131:doOperation,[])
}
Add(Math,11703131,616,217)
{
OpType=35
Op2=0.000000001
link(onResult,402788:doOperation,[])
}
Add(Math,402788,679,217)
{
link(onResult,12368625:doWork3,[(725,223)])
link(Op1,2464389:Var3,[(685,145)])
}
Add(GetDataEx,2464389,644,140)
{
link(Data,3467125:DateTime,[])
}
Add(HubEx,12368625,721,161)
{
link(onEvent,7965468:doConvert,[])
}
Add(Edit,7249632,987,70)
{
Left=190
Top=35
Width=370
Text="b86edebd-003ffa1d-e17aebd6-9668e"
}
Add(Label,3189680,168,112)
{
Left=110
Top=38
Width=56
Height=17
Caption="SecretKey:"
}
Add(HTTPClient,6023390,658,483)
{
URL="http://api.huobi.pro/v1/order/orders/place"
Method=1
Point(RawHeaders)
Point(Headers)
Point(PostData)
link(onHeadersAvail,7347341:doData,[])
link(onFinish,15723512:doWork3,[(795,496)])
link(Headers,8882164:Result,[(678,468)(1182,468)])
link(PostData,16745096:Text,[])
AddHint(-73,52,44,13,Method)
AddHint(-73,73,44,16,)
}
Add(Memo,11083271,854,483)
{
Left=5
Top=455
Width=990
Height=320
ScrollBars=3
}
Add(VisualStrings,16745096,679,336)
{
Lines=#19:account-id=10238014|11:amount=10.1|12:price=6000.1|10:source=api|14:symbol=btcusdt|14:type=buy-limit|21:client-order-id=a0001|
Width=116
Height=102
}
Add(Hub,15671646,329,154)
{
link(onEvent1,7617945:doOperation,[])
link(onEvent2,6023390:doLoadString,[(361,167)(361,489)])
}
Add(DoData,7347341,735,483)
{
link(onEventData,15723512:doWork2,[])
link(Data,6023390:RawHeaders,[(741,475)(713,475)(713,527)(685,527)])
}
Add(StrCat,8882164,1176,161)
{
Str1="Signature: "
link(onStrCat,1227602:doAdd,[])
}
Add(HubEx,15723512,791,483)
{
link(onEvent,11083271:doAdd,[])
}

карма: 0

0
Редактировалось 3 раз(а), последний 2019-12-01 09:09:07