[英]Not able to upload file using slack api files.upload
This question may seem duplicate but I have tried a lot but did not get success.这个问题可能看起来重复,但我尝试了很多但没有成功。 I am trying to upload html file using https://slack.com/api/files.upload API but I am getting below error always.
我正在尝试使用https://slack.com/api/files.upload API 上传 html 文件,但我总是遇到以下错误。 response {'ok': False, 'error': 'no_file_data'}
响应 {'ok': False, 'error': 'no_file_data'}
I went through documentation [a link] https://api.slack.com/methods/files.upload and tried with different options but still i am getting the same response {'ok': False, 'error': 'no_file_data'}我浏览了文档 [链接] https://api.slack.com/methods/files.upload并尝试了不同的选项,但仍然得到相同的响应 {'ok': False, 'error': 'no_file_data' }
Also i have seen many similar questions in stack overflow but none of them resolved the problem.我也在堆栈溢出中看到了许多类似的问题,但没有一个解决了问题。 [a link] no_file_data error when using Slack API upload [a link] How to upload files to slack using file.upload and requests
[链接] 使用 Slack API 上传时出现 no_file_data 错误[链接] 如何使用 file.upload 和请求将文件上传到 slack
Below is my code.下面是我的代码。
import requests
def post_reports_to_slack(html_report):
"""
"""
url = "https://slack.com/api/files.upload"
# my_file = {html_report, open(html_report, 'rb'), 'html'}
data = {
"token": bot_user_token,
"channels": channel_name,
"file": html_report,
"filetype": "html"
}
# data = "token=" + bot_user_token + \
# "&channels=" + channel_name +\
# "&file=" + html_report + "&filetype=" + "html"
response = requests.post(
url=url, data=data,
headers={"Content-Type": "application/x-www-form-urlencoded"})
print("response", response)
print(response.json())
if response.status_code == 200:
print("successfully completed post_reports_to_slack "
"and status code %s" % response.status_code)
else:
print("Failed to post report on slack channel "
"and status code %s" % response.status_code)
Please help to resolve the issue.请帮助解决问题。
I was needed to add "content" argument and "filename" argument instead of "file" argument in files.upload API payload, Now file uploading to slack channel is working fine.我需要在 files.upload API 负载中添加“content”参数和“filename”参数而不是“file”参数,现在文件上传到松弛通道工作正常。
import requests
def post_reports_to_slack(html_report):
url = "https://slack.com/api/files.upload"
with open(html_report) as fh:
html_data = fh.read()
data = {
"token": bot_user_token,
"channels": "#channel_name",
"content": html_data,
"filename": "report.html",
"filetype": "html",
}
response = requests.post(
url=url, data=data,
headers={"Content-Type": "application/x-www-form-urlencoded"})
if response.status_code == 200:
print("successfully completed post_reports_to_slack "
"and status code %s" % response.status_code)
else:
print("Failed to post report on slack channel "
"and status code %s" % response.status_code)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.