Сложности с POST запросами, при работе с API
IIIOB
Дата: Понедельник, 20.05.2019, 13:50 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Добрый день! Пишу VBA макрос, в котором беру данные с Kuna.IO через их API (https://kuna.io/documents/api) [vba]Код
TestSignature = "/api/v2/" & Method & "|access_key=" & apiKey If ID <> "" Then TestSignature = TestSignature & "&id=" & ID If Symbol <> "" Then TestSignature = TestSignature & "&market=" & Symbol If Side <> "" Then TestSignature = TestSignature & "&side=" & Side If Price <> "" Then TestSignature = TestSignature & "&price=" & Price TestSignature = TestSignature & "&tonce=" & NonceUnique If Volume <> "" Then TestSignature = TestSignature & "&volume=" & Volume 'Debug.Print TestSignature Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") 'Debug.Print "Hash=" & "POST|" & TestSignature StringSignature = SignatureKuna("POST|" & TestSignature, secretKey) 'Debug.Print "signature=" & StringSignature objHTTP.Open "POST", TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature, False 'Debug.Print "url=" & TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 'application/json text/html;charset=utf-8 objHTTP.Send (TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature) objHTTP.WaitForResponse 'Debug.Print objHTTP.responseText PrivateKuna2 = objHTTP.responseText Set objHTTP = Nothing
[/vba] Пользовательские GET методы работают отлично, а все POST методы выдают "{"error":{"code":2005,"message":"Signature is incorrect."}}"
Добрый день! Пишу VBA макрос, в котором беру данные с Kuna.IO через их API (https://kuna.io/documents/api) [vba]Код
TestSignature = "/api/v2/" & Method & "|access_key=" & apiKey If ID <> "" Then TestSignature = TestSignature & "&id=" & ID If Symbol <> "" Then TestSignature = TestSignature & "&market=" & Symbol If Side <> "" Then TestSignature = TestSignature & "&side=" & Side If Price <> "" Then TestSignature = TestSignature & "&price=" & Price TestSignature = TestSignature & "&tonce=" & NonceUnique If Volume <> "" Then TestSignature = TestSignature & "&volume=" & Volume 'Debug.Print TestSignature Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") 'Debug.Print "Hash=" & "POST|" & TestSignature StringSignature = SignatureKuna("POST|" & TestSignature, secretKey) 'Debug.Print "signature=" & StringSignature objHTTP.Open "POST", TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature, False 'Debug.Print "url=" & TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 'application/json text/html;charset=utf-8 objHTTP.Send (TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature) objHTTP.WaitForResponse 'Debug.Print objHTTP.responseText PrivateKuna2 = objHTTP.responseText Set objHTTP = Nothing
[/vba] Пользовательские GET методы работают отлично, а все POST методы выдают "{"error":{"code":2005,"message":"Signature is incorrect."}}" IIIOB
Сообщение отредактировал IIIOB - Понедельник, 20.05.2019, 13:58
Ответить
Сообщение Добрый день! Пишу VBA макрос, в котором беру данные с Kuna.IO через их API (https://kuna.io/documents/api) [vba]Код
TestSignature = "/api/v2/" & Method & "|access_key=" & apiKey If ID <> "" Then TestSignature = TestSignature & "&id=" & ID If Symbol <> "" Then TestSignature = TestSignature & "&market=" & Symbol If Side <> "" Then TestSignature = TestSignature & "&side=" & Side If Price <> "" Then TestSignature = TestSignature & "&price=" & Price TestSignature = TestSignature & "&tonce=" & NonceUnique If Volume <> "" Then TestSignature = TestSignature & "&volume=" & Volume 'Debug.Print TestSignature Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1") 'Debug.Print "Hash=" & "POST|" & TestSignature StringSignature = SignatureKuna("POST|" & TestSignature, secretKey) 'Debug.Print "signature=" & StringSignature objHTTP.Open "POST", TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature, False 'Debug.Print "url=" & TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature objHTTP.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" objHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" 'application/json text/html;charset=utf-8 objHTTP.Send (TradeApiSite & Replace(TestSignature, "|", "?") & "&signature=" & StringSignature) objHTTP.WaitForResponse 'Debug.Print objHTTP.responseText PrivateKuna2 = objHTTP.responseText Set objHTTP = Nothing
[/vba] Пользовательские GET методы работают отлично, а все POST методы выдают "{"error":{"code":2005,"message":"Signature is incorrect."}}" Автор - IIIOB Дата добавления - 20.05.2019 в 13:50
китин
Дата: Понедельник, 20.05.2019, 13:57 |
Сообщение № 2
Группа: Модераторы
Ранг: Экселист
Сообщений: 7029
Репутация:
1078
±
Замечаний:
0% ±
Excel 2007;2010;2016
IIIOB , код надо не под спойлер прятать, а оформлять тэгами. в режиме правки поста выделяете код и нажимаете кнопочку #
IIIOB , код надо не под спойлер прятать, а оформлять тэгами. в режиме правки поста выделяете код и нажимаете кнопочку # китин
Не судите очень строго:я пытаюсь научиться ЯД 41001877306852
Ответить
Сообщение IIIOB , код надо не под спойлер прятать, а оформлять тэгами. в режиме правки поста выделяете код и нажимаете кнопочку # Автор - китин Дата добавления - 20.05.2019 в 13:57
IIIOB
Дата: Понедельник, 20.05.2019, 13:58 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Исправил
Ответить
Сообщение Исправил Автор - IIIOB Дата добавления - 20.05.2019 в 13:58
doober
Дата: Вторник, 21.05.2019, 00:08 |
Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация:
333
±
Замечаний:
0% ±
Excel 2010
Здравствуйте. Выложите код функции SignatureKuna
Здравствуйте. Выложите код функции SignatureKuna doober
Ответить
Сообщение Здравствуйте. Выложите код функции SignatureKuna Автор - doober Дата добавления - 21.05.2019 в 00:08
IIIOB
Дата: Вторник, 21.05.2019, 10:12 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
[vba]Код
Function SignatureKuna(urlString As String, keyString As String) Dim xKey As String Dim xData As String Dim bSig() As Byte Dim StringToSign() As Byte Dim secretKey() As Byte xData = urlString xKey = keyString With New HS256a StringToSign = .ToUTF8(xData) secretKey = .ToUTF8(xKey) .InitHmac secretKey Erase secretKey bSig = .HmacSha256(StringToSign) Erase StringToSign SignatureKuna = .Encode(bSig, edfHexRaw, efNoFolding) Erase bSig End With End Function
[/vba] Функция генерирует подпись запроса. Повторюсь при ГЕТ запросах подпись валидная
[vba]Код
Function SignatureKuna(urlString As String, keyString As String) Dim xKey As String Dim xData As String Dim bSig() As Byte Dim StringToSign() As Byte Dim secretKey() As Byte xData = urlString xKey = keyString With New HS256a StringToSign = .ToUTF8(xData) secretKey = .ToUTF8(xKey) .InitHmac secretKey Erase secretKey bSig = .HmacSha256(StringToSign) Erase StringToSign SignatureKuna = .Encode(bSig, edfHexRaw, efNoFolding) Erase bSig End With End Function
[/vba] Функция генерирует подпись запроса. Повторюсь при ГЕТ запросах подпись валидная IIIOB
Сообщение отредактировал IIIOB - Вторник, 21.05.2019, 10:13
Ответить
Сообщение [vba]Код
Function SignatureKuna(urlString As String, keyString As String) Dim xKey As String Dim xData As String Dim bSig() As Byte Dim StringToSign() As Byte Dim secretKey() As Byte xData = urlString xKey = keyString With New HS256a StringToSign = .ToUTF8(xData) secretKey = .ToUTF8(xKey) .InitHmac secretKey Erase secretKey bSig = .HmacSha256(StringToSign) Erase StringToSign SignatureKuna = .Encode(bSig, edfHexRaw, efNoFolding) Erase bSig End With End Function
[/vba] Функция генерирует подпись запроса. Повторюсь при ГЕТ запросах подпись валидная Автор - IIIOB Дата добавления - 21.05.2019 в 10:12
doober
Дата: Вторник, 21.05.2019, 22:19 |
Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 971
Репутация:
333
±
Замечаний:
0% ±
Excel 2010
Документация у них никакая.Примеров нет. Возможно при post запросе что то в заголовок добавляется. Попробуйте в техподдержку задать вопрос.
Документация у них никакая.Примеров нет. Возможно при post запросе что то в заголовок добавляется. Попробуйте в техподдержку задать вопрос. doober
Ответить
Сообщение Документация у них никакая.Примеров нет. Возможно при post запросе что то в заголовок добавляется. Попробуйте в техподдержку задать вопрос. Автор - doober Дата добавления - 21.05.2019 в 22:19
IIIOB
Дата: Вторник, 21.05.2019, 22:30 |
Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Пробовал в поддержку задавать вопрос, скинули пример на nodejs и все
Пробовал в поддержку задавать вопрос, скинули пример на nodejs и все IIIOB
Ответить
Сообщение Пробовал в поддержку задавать вопрос, скинули пример на nodejs и все Автор - IIIOB Дата добавления - 21.05.2019 в 22:30
IIIOB
Дата: Среда, 22.05.2019, 06:49 |
Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Проблема решена, спасибо за помощь. Проблема заключалась в неправильной сортировке параметров запроса, в следствии чего генерировалась подпись из неправильных входящих данных
Проблема решена, спасибо за помощь. Проблема заключалась в неправильной сортировке параметров запроса, в следствии чего генерировалась подпись из неправильных входящих данных IIIOB
Ответить
Сообщение Проблема решена, спасибо за помощь. Проблема заключалась в неправильной сортировке параметров запроса, в следствии чего генерировалась подпись из неправильных входящих данных Автор - IIIOB Дата добавления - 22.05.2019 в 06:49