R/authorization.R

Defines functions etsy.access_token

Documented in etsy.access_token

#' etsy.access_token
#'
#' @description Get an etsy oauth1.0 access token
#' @param permissionScopes Character vector. Etsy permission scopes to request. Note that one token can have multiple permission scopes.
#' @param ... Additional parameters passed on to oauth1.0_token
#'
#' @return Oauth1.0 access token
#' @import httr
#' @export
#'
#' @examples
#' token_listing_w <- etsy.access_token("listings_w")
#' 
etsy.access_token <- function(permissionScopes, ...){
  
  assert_that(!is.null(permissionScopes) & is.character(permissionScopes))
  
  request_url <- function(base_url) {
    paste0(permissionScopes, collapse = " ") %>%
      sprintf(paste0(base_url, "/oauth/request_token?scope=%s"), .) %>%
      encodeURI
  }

  # TODO wrap in try cath or handle httr/etsy errors
  with(etsy,
       oauth1.0_token(
         endpoint = oauth_endpoint(request = request_url(base_url),
                                   authorize = oauthEndpoint$authorize,
                                   access = oauthEndpoint$access),
         app = oauth_app("etsy", key = api_key, secret = shared_secret),
         ...
       )
  )
}
agpknitweardesign/festotuAPIs documentation built on Feb. 2, 2020, 12:20 p.m.