/ R上のJSON本文を含む/ POST暗号化要求 - json、r、openssl、httr、jsonlite

R - json、r、openssl、httr、jsonlite上のJSON本体によるPOSTエンコードリクエスト

暗号化されたリクエストを 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())