Hallo zusammen,
ich habe versucht über btcde.py von peshay auf die TAPI zuzugreifen (https://github.com/peshay/btcde). Die get-Funktionen machen auch alle das was sie sollen, nur bei den post-Funktionen klappt das eben nicht. Es kommt immer der HTTP-Fehler 422 mit Error Code 26 "Invalid order_id". Da kann man auch machen was man will.
Mein Code:
import sys
import btcde
# create a object for the connection settings
api_key = 'XXX'
api_secret = 'XXXXX'
conn = btcde.Connection(api_key, api_secret)
# get command line parameters
orderID = sys.argv[1]
type = sys.argv[2]
amount = sys.argv[3]
print ('OrderID: %s\tType: %s\tAmount: %s\n') % (orderID, type, amount)
trade = btcde.executeTrade(conn, orderID, type, amount)
Api-Key und -Secret sind im Original korrekt... :-)
Meine Ausgabe:
OrderID: F7M28S Type: buy Amount: 0.1
INFO:urllib3.connectionpool:Starting new HTTPS connection (1): api.bitcoin.de
send: 'POST /v1/trades/:F7M28S?amount=0.1&order_id=F7M28S&type=buy HTTP/1.1\r\nHost: api.bitcoin.de\r\nContent-Length: 35\r\nAccept-Encoding: gzip, deflate\r\nX-API-SIGNATURE: 48099275a13a6aa1b4f9ca965d83e195885f433e3a736cf82b61d8cf2de5f0dd\r\nAccept: */*\r\nUser-Agent: python-requests/2.4.3 CPython/2.7.9 Linux/4.4.11+\r\nConnection: keep-alive\r\nX-API-KEY: db4e4c9fa78be322f7753bd07301a4cf\r\nX-API-NONCE: 1479151258\r\ncontent-type: application/x-www-form-urlencoded; charset=utf-8\r\n\r\namount=0.1&order_id=F7M28S&type=buy'
reply: 'HTTP/1.1 422 Unprocessable Entity\r\n'
header: Date: Mon, 14 Nov 2016 19:20:59 GMT
header: Content-Type: application/json; charset=utf-8
header: Transfer-Encoding: chunked
header: Connection: keep-alive
header: Set-Cookie: __cfduid=d8e88e179a0d61f84c325d13aeb5360091479151258; expires=Tue, 14-Nov-17 19:20:58 GMT; path=/; domain=.bitcoin.de; HttpOnly
header: Cache-Control: no-cache
header: Expires: Thu, 01 Jan 1970 00:00:00 GMT
header: X-Frame-Options: deny
header: X-Content-Type-Options: nosniff
header: Strict-Transport-Security: max-age=15552000; includeSubDomains; preload
header: X-XSS-Protection: 1; mode=block
header: X-Frame-Options: DENY
header: Server: cloudflare-nginx
header: CF-RAY: 301cd2e41ca50f93-FRA
DEBUG:urllib3.connectionpool:"POST /v1/trades/:F7M28S?amount=0.1&order_id=F7M28S&type=buy HTTP/1.1" 422 None
Code: 26
Message: Invalid order_id
With URL: https://api.bitcoin.de/v1/trades/:F7M28S?amount=0.1&order_id=F7M28S&type=buy
Nachdem das nicht hingehauen hat, hab ich selbst versucht, das ganze in Perl ohne die Library nachzucoden. Das hat aber genauso wenig geklappt. Mir fallen in dem Zusammenhang folgende Fragen ein:
- Die order_id ist schon die 6-stellige alphanumerische Nummer, oder? Die Bezeichnung ist an den verschiedenen Stellen uneinheitlich und mit der 7-stelligen numerischen "Transaktion-Id" (366xxxx) klappts auch nicht...
- Der Pfad mit dem Doppelpunkt ist schon korrekt, oder?
- Müssen außer den X-API-BLABLABLA irgendwelche bestimmten Header übergeben werden?
- Hat irgendwer Erfahrungen mit der Lib von peshay? ...oder hat sogar ein Codeschnippsel, das er posten kann?
Danke vielmals!
Stronzo