2017-07-12 4 views
0

httrパッケージを使用してRの簡単なGETリクエスト(Aplos APIから)を探しています。私はAPIキーで認証することで一時的なトークンを得ることができますが、実際にGETリクエストを行うためにトークンを使用しようとすると、401トークンが見つかりませんでした。助けていただければ幸いです!前もって感謝します。RのAPI認証 - ヘッダーとして認証トークンを渡すことができません

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))) 

これは、Pythonでは、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

、認証コードブロックの戻り値は、base64でapi_bearer_tokenは、復号化され、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コールで使用されます。

私が見る2番目の問題は、承認ヘッダーが例のヘッダーと一致しないことです。これらの両方に対処した後に続行することができるはず

add_headers(Authorization = paste("Bearer:", AplosAuthToken))) 

そうな対

headers = {'Authorization': 'Bearer: {}'.format(api_access_token)} 

:具体的には、「ベアラー」の後にスペースが不足しています。

関連する問題