我试图使用应用程序使用ruby sdk(soundcloud 0.2.0 gem)从Soundcloud下载一首曲目.我在soundcloud上注册了应用程序,client_secret是正确的.我知道这一点,因为我可以使用该应用查看我的个人资料信息和曲目.现在,当我尝试使用以下代码下载曲目时
@track = current_user.soundcloud_client.get(params[:track_uri])
data = current_user.soundcloud_client.get(@track.download_url)
File.open("something.mp3","wb"){|f|f.write(data)}
Run Code Online (Sandbox Code Playgroud)
当我打开文件时,它没有任何内容.我尝试了很多方法,包括以下方法,
data = current_user.soundcloud_client.get(@track.download_url)
file = File.read(data)
Run Code Online (Sandbox Code Playgroud)
这个给了我一个错误
can't convert nil into String
Run Code Online (Sandbox Code Playgroud)
在13号线上
app/controllers/store_controller.rb:13:in `read'
Run Code Online (Sandbox Code Playgroud)
这就是File.read
功能.
我已经仔细检查过我试图下载的曲目是公开的和可下载的.我尝试通过从控制台复制并使用Postman发送请求来测试正在明确使用的download_url并且它有效.我不确定为什么当其他东西工作得那么好时它不能与应用程序一起工作.
我想要做的是成功地能够下载或至少获取我可以存储在某处的数据.
版本细节: -
ruby 1.9.3p194(2012-04-20修订版35410)[x86_64-linux]
Rails 3.2.18
soundcloud 0.2.0