2017-12-28 3 views
0

RのDELETEリクエストに問題があります。下記のコードを使用してGETPOSTリクエストを作成しました。どんな助け/ポインタも高く評価されます。R GDAX-API削除リクエスト

GDAXのapi.key,secret & passphraseが必要です。私が手

library(RCurl) 
library(jsonlite) 
library(httr) 
library(digest) 

cancel_order <- function(api.key, 
         secret, 
         passphrase) { 
    api.url <- "https://api.gdax.com" 

    #get url extension---- 
    req.url <- "/orders/" 

    #define method---- 
    method = "DELETE" 

    url <- paste0(api.url, req.url) 

    timestamp <- 
    format(as.numeric(Sys.time()), digits = 13) # create nonce 
    key <- base64Decode(secret, mode = "raw") # encode api secret 

    #create final end point---- 
    what <- paste0(timestamp, method, req.url) 

    #create encoded signature---- 
    sign <- 
    base64Encode(hmac(key, what, algo = "sha256", raw = TRUE)) # hash 

    #define headers---- 
    httpheader <- list(
    'CB-ACCESS-KEY' = api.key, 
    'CB-ACCESS-SIGN' = sign, 
    'CB-ACCESS-TIMESTAMP' = timestamp, 
    'CB-ACCESS-PASSPHRASE' = passphrase, 
    'Content-Type' = 'application/json' 
) 
    ##------------------------------------------------ 
    response <- getURL(
    url = url, 
    curl = getCurlHandle(useragent = "R"), 
    httpheader = httpheader 
) 
    print(rawToChar(response)) #rawToChar only on macOS and not on Win 
} 

エラーは同じコマンドは、コードし、署名がGET & POSTで動作しますにもかかわらず"{\"message\":\"invalid signature\"}"です:

は、ここに私の関数です。

参考:GDAX API DOCs

答えて

0

私は@ mrflickの助言を受けてdifferent but related questionの彼のフィードバックに基づいてrequestbinへの接続を指摘しました。

慎重に調査した結果、何らかの理由で私のリクエストがPOSTリクエストとして処理され、DELETEリクエストではないことがわかりました。だから私はの機能を別の上位レベルの機能であるRCurlに置き換えて動作させることにしました。

response <- httpDELETE(
    url = url, 
    curl = getCurlHandle(useragent = "R"), 
    httpheader = httpheader 
) 

他はすべて同じです。明らかに署名に問題はありませんでした。

私は非公式のラッパーになりました。この機能を追加したrgdax

EDIT ::
非公式ラッパーが今公式とCRANにあります。

0

ちょうど私がAPIに精通していないけど、おそらくあなたは 'オーダーID' を欠けていると推測...で

外観:https://docs.gdax.com/?javascript#cancel-an-order

+0

エンドポイントは2つあります。 1つはすべてを取り消し、もう1つは注文を取り消す。私が注文IDを紛失していた場合、無効な署名ではなく、悪い要求があったでしょう。 – Drj