2013-07-01 77 views
0

我正在嘗試使用foursquare API(通過foursquare寶石)發佈照片。通過Foursquare API上傳遠程圖像

根據他們的文檔,我必須通過:photo參數作爲UploadIO(對象)。

http://rubydoc.info/gems/foursquare2/Foursquare2/Photos

當我嘗試撥打電話,我得到一個「沒有這樣的文件或目錄錯誤」

foursquare.add_photo(:checkinId => XXX, :photo => Faraday::UploadIO.new('http://dagh1lffffqbm.cloudfront.net/1372702207.733335_13939.jpg', 'image/jpeg')) 
Errno::ENOENT: No such file or directory - http://dagh1lffffqbm.cloudfront.net/1372702207.733335_13939.jpg 

請注意,我試圖上傳該文件是遠程(S3)和不在我的服務器上。我在這裏錯過了什麼?

回答

0

我得到了它的圖像路徑周圍添加open電話的工作:

foursquare.add_photo(:checkinId => XXX, :photo => Faraday::UploadIO.new(open("http://dagh1lffffqbm.cloudfront.net/1372702207.733335_13939.jpg"), 'image/jpeg')) 

現在,這是否是這樣做的最有效的方法,那我不知道。我有一個偷偷的懷疑,這實際上是下載S3文件到我的服務器之前發送到四方。也許這是唯一的方法?