我希望使用httr包在R中做一个简单的GET请求(来自Aplos API)。我可以通过使用API密钥进行身份验证来获取临时令牌,但之后我得到了一个401"无法找到令牌"一旦尝试使用令牌发出实际的GET请求。非常感谢任何帮助!提前谢谢。
AplosURL <- "https://www.aplos.com/hermes/api/v1/auth/"
AplosAPIkey <- "XYZ"
AplosAuth <- GET(paste0(AplosURL,AplosAPIkey))
AplosAuthContent <- content(AplosAuth, "parsed")
AplosAuthToken <- AplosAuthContent$data$token
#This is where the error occurs
GET("https://www.aplos.com/hermes/api/v1/accounts",
add_headers(Authorization = paste("Bearer:", AplosAuthToken)))
这是API文档提供的Python代码段:
def api_accounts_get(api_base_url, api_id, api_access_token):
# This should print a contact from Aplos.
# Lets show what we're doing.
headers = {'Authorization': 'Bearer: {}'.format(api_access_token)}
print 'geting URL: {}accounts'.format(api_base_url)
print 'With headers: {}'.format(headers)
# Actual request goes here.
r = requests.get('{}accounts'.format(api_base_url), headers=headers)
api_error_handling(r.status_code)
response = r.json()
print 'JSON response: {}'.format(response)
return (response)
答案 0 :(得分:0)
在python示例中,auth代码块的返回是api_bearer_token,它被base64解码并且rsa解密(使用你的密钥)才能使用它。
...
api_token_encrypted = data['data']['token']
api_bearer_token = rsa.decrypt(base64.decodestring(api_token_encrypted), api_user_key)
return(api_bearer_token)
然后在api调用中使用该解码的令牌来获取帐户。
我看到的第二个问题是您的Authorization标头与示例的标头不匹配。具体来说,在#34; Bearer:&#34;
之后,你错过了空间headers = {'Authorization': 'Bearer: {}'.format(api_access_token)}
VS
add_headers(Authorization = paste("Bearer:", AplosAuthToken)))
在解决这两个问题之后,您可以继续进行。