2012-08-12 19 views
0

我正在研究一個紅寶石應用程序,並試圖上傳一個文件到box.net。我有它使用curl調用紅寶石多部分表格上傳與RestClient

curl https://www.box.com/api/2.0/files/data -H "Authorization: BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>" -F folder_id=0 -F [email protected] --trace ~/Desktop/log.txt 

我試着翻譯成紅寶石這方面的工作,並曾嘗試以下

request = RestClient::Request.new(:method => :post,:url => "https://www.box.com/api/2.0/files/data",:authorization => "BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>",:filename => "test.txt", :payload => { :multipart => true, :file => File.new("test.txt")) 
request.execute 

,但我不斷收到回一個「401:未經授權」的響應。我也嘗試過使用box-api gem,但這似乎只適用於1.0版本的API,並且我試圖與2.0接​​口。

回答

2

嘗試在通話中使用:headers => {:authorization => "BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>"}。這應該修復缺少的授權標題。然後

完全要求是:

request = RestClient::Request.new(:method => :post,:url => "https://www.box.com/api/2.0/files/data",:headers => {:authorization => "BoxAuth api_key=<API_KEY>&auth_token=<AUTH_TOKEN>"},:filename => "test.txt", :payload => { :multipart => true, :file => File.new("test.txt")}) 
+1

這做到了!我還必須在有效負載中添加':folder_id =>「0」',但是它可以工作。謝謝! – Pyro2927 2012-08-12 23:59:07