Snažím sa použiť R na odoslanie šifrovanej žiadosti na adresu API.
Konkrétne / V3 / objednávky / Požiadavka.
Vyžaduje použitie rozhrania API key
a secret
, ako aj rastúce nonce
.
Použitím openssl
, jsonlite
a httr
knižnice:
Telo musí byť zakódované JSON:
book<-"btc_eth"
side<-"sell"
major<-"0.1"
price<-"100"
type<-"limit"
Payload<-toJSON(data.frame(book=book,side=side,major=major,price=price,type=type))
Vyžaduje tiež autorizačnú hlavičku s koncovkou sha256 šifrované signature
.
N<-NONCE() # "1503033312"
method<-"POST"
Path<-"/v3/orders/"
Signature<-sha256(paste0(N,method,Path,Payload),secret)
header<-paste0("Bitso ",key,":",N,":",Signature)
Nakoniec by žiadosť mala vyzerať takto:
url<-"https://api.bitso.com/v3/orders/"
r<-POST(url, body = Payload, add_headers(Authorization=header))
Dokázal (-a) odoslať žiadosti s prázdnym užitočným nákladom do tohto rozhrania API, ale toto volanie posiela nepodporovanú chybu typu média, niečo o spôsobe, akým som to spôsobil JSON kódovanie platidla.
Tam je Ruby a PHP príklady, ako umiestniť túto požiadavku tu.
odpovede:
1 pre odpoveď č. 1Keďže som nemal kľúče na vyskúšanie, je to odpoveď z prípadu, s kým som kedysi čelil - možno budete chcieť trochu zmeniť tvoj telefón JSON. toJSON
umiestni držiak na každú stranu, na ktorú zavoláte. Musíte ich odstrániť:
# Go from
Payload<- jsonlite::toJSON(data.frame(book=book,side=side,major=major,price=price,type=type))
Payload
[{"book":"btc_eth","side":"sell","major":"0.1","price":"100","type":"limit"}]
# To
Payload <- gsub("\[|\]", "", Payload)
Payload
{"book":"btc_eth","side":"sell","major":"0.1","price":"100","type":"limit"}
Dajte mi vedieť, či to funguje,
best,
colin
0 pre odpoveď č. 2
Takže som konečne mohol poslať žiadosť.
Musím poďakovať Colinovi Fayovi za jeho odpoveď na to, ako odstrániť zátvorky.
Ide o to, že záhlavie muselo byť skonštruované s neodvráteným telom JSON, ale telo muselo byť odoslané ako zoznam s automatickým kódovaním JSON nasledovne:
NC<-NONCE()
mthd<-"POST"
Pyld<- toJSON(data.frame(book=book,side=side,major=major,price=price,type=type))
Pyld <- gsub("\[|\]", "", Pyld)
body<-list(book=book,side=side,major=major,price=price,type=type)
url<-"https://api.bitso.com/v3/orders/"
Pth<-"/v3/orders/"
hdr<-paste0("Bitso ",ky,":",NC,":",sha256(paste0(NC,mthd,Pth,Pyld),scrt))
r<-POST(url, body = body, add_headers(Authorization=hdr),encode="json",verbose())