暗号化されたリクエストを API.
具体的には、 / v3 / orders / 要求。
それはAPIの使用を必要とします key
そして secret
、そして増加する nonce
.
使用 openssl
, jsonlite
そして httr
ライブラリ:
本体は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))
それはまた認証ヘッダを作成します。 sha256 暗号化 signature
.
N<-NONCE() # "1503033312"
method<-"POST"
Path<-"/v3/orders/"
Signature<-sha256(paste0(N,method,Path,Payload),secret)
header<-paste0("Bitso ",key,":",N,":",Signature)
最後に、リクエストは次のようになります。
url<-"https://api.bitso.com/v3/orders/"
r<-POST(url, body = Payload, add_headers(Authorization=header))
空のペイロードを持つリクエストを以前このAPIに送信することはできましたが、この呼び出しはサポートされていないメディアタイプエラーを送信します。これは、ペイロードをJSONエンコードする方法に関する問題です。
このリクエストを配置する方法についてのRubyとPHPの例があります ここに.
回答:
回答№1は1試してみるべき鍵がないので、これは私がかつて直面していたケースからの答えです - あなたはJSONが呼ぶ少し変更したいと思うかもしれません。 toJSON
あなたが呼び出すそれぞれの側に角かっこを置きます。だからあなたはそれらを削除する必要があります:
# 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"}
それがうまくいくかどうか私に教えてください、
ベスト、
コリン
回答№2の場合は0
それで、私はついに要求を送ることができました。
角かっこを削除する方法についての彼の応答についてColin Fayに感謝しなければなりません。
問題は、ヘッダーは括弧で囲まれていないJSON本文を使用して作成する必要がありましたが、本文は次のように自動JSONエンコード方式のリストとして送信する必要があったことです。
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())