我正在尝试为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
答案 0 :(得分:1)
啊,实际上这是你不能使用JSON的一种情况 - 你需要进行表格编码上传,否则你只是试图将“file”参数设置为字符串“@tmpfile.txt”(或者你有什么。)
我并不熟悉rails,但这里真正的问题是“如何从Rails发布文件上传” - 这里的Asana端点与所有其他表单上传完全一样。