2016-09-19 6 views
0

HTTPartyを使用していくつかのAPIに接続しようとしています。まず、トークンを取得するために自分の資格情報でログインし、後でこのトークンを使用して他の取得要求を行う必要があります。私はHTTPartyの投稿でサードパーティのAPIに接続し、Rubyを取得します。

def get_token 
    HTTParty.post(base_url + '/login', headers: { "Content-Type": "application/json" }, body: body_hash).body 
end 

def body_hash 
    { 
     "username": "my_username", 
     "apikey": "7867868yiuhi76" 
    }.to_json 
end 

とそれに私が正しくトークンを受け取ります。

それから私は、このようなAPIの上に別のURLにGETやろう:

response = JSON.parse(get_token)    
data = HTTParty.get(base_url + '/some_path', headers: { "Content-Type": "application/json", "Authorization: Bearer" => response['token'] }).body 
puts data 

を、私はエラーを取得する:

"Internal server error" 

誰もがここで問題になる可能性が何を知っていますか?ありがとうございました。

+0

はあなたが使用しているAPIについての詳細な情報を提供していただけますか? –

+0

ヘッダーを '{" Content-Type ":" application/json "、" Authorization ":" Bearer "+レスポンス['token']}' – Anthony

+0

@Anthonyとして試してみてください。 – user1993565

答えて

0

ヘッダーにパラメータが混在しているだけです。これがOauth/Oauth2であると仮定すると、 'Bearer token'の値を持つ 'Authorization'キーを送信する必要があります。あなたの例のためにそう

HTTParty.get(base_url + '/some_path', headers: { "Content-Type": "application/json", "Authorization": "Bearer #{response['token']}" }).body 
関連する問題