2017-02-16 52 views
1

我想從我的Rails應用中的vimeo api獲取未經身份驗證的訪問令牌。標頭:但是POST請求使用HTTParty寶石回報以下從API無法使用HTTParty將頭部發送到vimeo

{"error"=>"You must provide a valid authenticated access token."} 

發送請求

header = "basic " + Base64.encode64("****07974be" + ":" + "****ygYBI7I") 

token = HTTParty.post("https://api.vimeo.com/oauth/authorize/client", 
      :body => {:grant_type => 'client_credentials'}, 
      :header => {'Authorization' => header} 
     ) 

json=JSON.parse(token) 

我已經檢查憑據是否正確,還試圖替代代碼響應由標題,以及在標題哈希中使用字符串而不是符號的各種組合。但是他們都沒有工作。

但是,使用相同憑證的相同URL的調用通過Postman成功。

編輯正如答案中所述,我們需要在進行呼叫時使用標題(複數)。但是,我已經嘗試過,但問題仍然存在。使用basic_auth,而不是發送頭似乎工作,但我不明白爲什麼通過HTTParty發送標頭不起作用,但類似的通話正在通過郵遞員。

回答

1

:headers選項絕對是複數形式,但由於您使用的是基本身份驗證,因此您也可以使用HTTParty的基本身份驗證選項。所以,你的請求將變成:

username = "YOUR-USER-HERE" 
password = "YOUR-PASSWORD-HERE" 

token = HTTParty.post("https://api.vimeo.com/oauth/authorize/client", 
     body: {:grant_type => 'client_credentials'}, 
     basic_auth: { username: username, password: password } 
    ) 

使用您的creds(你的意思是真正的後creds?)我有

{"access_token"=>"REDACTED", "token_type"=>"bearer", "scope"=>"public", "app"=>{"name"=>"Fable", "uri"=>"/apps/REDACTED"}} 
+0

使用basic_auth而不是工作頭!但是,任何想法爲什麼標題選項不起作用?此外,我觀察到問題是隻爲後來通話,呼叫標頭工作正常。 (作爲一個側面說明,這個應用程序僅用於測試目的,所以我認爲發佈真實憑證不會造成任何傷害?) – penguin2048