OAuth 1.0a с ключом потребителя и oauth_key? (ally invest API, ROAuth для httr) - PullRequest
0 голосов
/ 28 мая 2020

ROAuth работает нормально для аутентифицированных запросов GET, но запросы POST не работают, и очень сложно диагностировать проблему. Я хотел бы перейти на использование httr, потому что ошибки более понятны, и я могу увидеть полный ответ.

Consumer Key: the key associated with your application
Consumer Secret: the key used to sign requests on behalf of your application
Access Token: the key used to make requests on behalf of your user account
Access Token Secret: the key used to sign requests on behalf of the user

документация / исследования:

https://www.ally.com/api/invest/documentation/oauth/

https://www.ally.com/api/invest/documentation/r/

https://github.com/cran/ROAuth/blob/master/R/ROauth.R

https://github.com/r-lib/httr/blob/master/R/oauth-signature.r

Я новичок в OAuth, поэтому мне не совсем понятно, какие ключи я должен использовать и где. Я попытался использовать пары ключей oauth, затем я попробовал пары ключей потребителя, но ни один из них не работал. Я не уверен, что делать

вот что у меня пока:

require(ROAuth)
require(RJSONIO)
require(glue)
require(xml2)
require(data.table)
require(tibble)


ally_app <- oauth_app(
  "ally",
  key = "",
  secret = ""
)

ally_get <- function(endpoint,
                          baseurl = "https://api.tradeking.com/",
                          app = ally_app,
                          ...) {
  url <- modify_url(baseurl, path = endpoint)
  info <- oauth_signature(url, method = "GET", app = app,other_params = "")
  header_oauth <- oauth_header(info)
  GET(url, header_oauth, ...)
}

res <- ally_get("v1/accounts.json")
stop_for_status(res)
content(res)

# returns 401 ???



# old method (works) --------------------------------------------

credentials <- OAuthFactory$new(consumerKey='',
                                consumerSecret='',
                                oauthKey = '', 
                                oauthSecret = '',
                                needsVerifier=FALSE,
                                signMethod='HMAC')
# Update the connection so the handshake is TRUE
credentials$handshakeComplete <- TRUE

# Fetch account info
accounts <- credentials$OAuthRequest("https://api.tradeking.com/v1/accounts.json")
fromJSON(accounts)
...