coffeescript - 使用 Slack API 上传时出现 no_file_data 错误
问题描述
当我尝试调用 slack API 进行上传时,出现此错误 {"ok":false,"error":"no_file_data"}。我已经在 ./log 中有指定的文件。
robot.respond /upload (.*)/i, (res) ->
app_name = res.match[1]
request = require("request")
fs = require("fs")
channel_name = res.message.room
data = {
channels: channel_name,
filename: "#{app_name}.txt",
file: fs.createReadStream("./log/#{app_name}.txt"),
}
robot.http("https://slack.com/api/files.upload")
.headers(Authorization: 'Bearer slack-token', 'Content-Type': 'application/json')
.post(data) (err, httpRes, body) ->
if err
res.send "#{err}"
return
res.send "#{body}"
解决方案
这不起作用,因为 API 方法files.upload
不支持内容类型的application/json
帖子。
对于您的情况,您需要发布 as multipart/form-data
,其中一部分包含文件数据,另一部分包含 API 参数,包括令牌。
推荐阅读
- python - 重新格式化 json 文件(python)
- python - 尝试使用熊猫从网站中提取 html 表
- python - 文档中的示例在 Jupiter Notebook 中不起作用
- git - VSCode:查看整个 git commit diff
- yii2 - Windows 10 localhost 上的 yii2 框架站点 - 部署问题
- kubernetes - 如何在 Terraform 中显示 kubernetes 日志
- php - Userpermission pivot-function 只能通过 Auth 类访问
- c# - NuGet 私有服务器在推送新包时返回 502 (Bad Gateway)
- firebase - Firebase 无法识别
- python - 正则表达式提取单词并以字符串中的空格结尾