Asana Api Rails附件

时间:2015-02-26 02:13:17

标签: ruby-on-rails attachment asana

我正在尝试为Asana任务添加附件。

我的JSON请求正文如下:

request_body = {
  "data" => {
    "file" => "@#{attachment.tempfile}"
  }
}

我在POST上收到了这个输出:

error: file: File is not an object 

“附件”变量是常规的轨道表单附件。

有什么想法吗?

- - - - - - - - 编辑

对于任何寻找未来的人,我都会使用法拉第宝石来解决这个问题。这是我使用的代码:

connection = Faraday.new(:url => @uri) do |conn|
  conn.response :logger                
  conn.request :multipart
  conn.request :url_encoded
  conn.basic_auth(@api_key, '')
  conn.adapter :net_http 
end

payload = { :file => Faraday::UploadIO.new(file, file_type) }
response = connection.post(@uri, payload)
return response 

1 个答案:

答案 0 :(得分:1)

啊,实际上这是你不能使用JSON的一种情况 - 你需要进行表格编码上传,否则你只是试图将“file”参数设置为字符串“@tmpfile.txt”(或者你有什么。)

我并不熟悉rails,但这里真正的问题是“如何从Rails发布文件上传” - 这里的Asana端点与所有其他表单上传完全一样。