通过Foursquare API上传远程图像

时间:2013-07-01 21:59:14

标签: ruby-on-rails foursquare image-uploading

我正在尝试使用foursquare API发布照片(通过foursquare2 gem)。

根据他们的文档,我必须将: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上),而不是在我的服务器上。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我通过在图片路径周围添加open调用来实现它:

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

现在,这是否是最有效的方式,我不确定。我有一个潜在的怀疑,这实际上是在将S3文件下载到我的服务器上之后发送到foursquare。也许那是唯一的方法吗?