How to upload a file - NO image - and comment it at the same time to Slack via SlackAPI using c#(如何使用C#通过SlackAPI上传文件(无图像)并同时将其注释到Slack)
问题描述
我可以通过我的SlackAPI上传图片到Slack,我可以上传文件,我可以上传带有评论的图片--但我不能用没有图片的文件做到这一点。 我肯定这是我的消息结构的问题-看看:所有这些都是通过HttpClient完成的!
这是我的工作文件上传方法:
public MultipartFormDataContent SendFileToChannel()
{
var requestContent = new MultipartFormDataContent();
var fileContent = new StreamContent(GetFile.ReadFile());
requestContent.Add(new StringContent(token), "token");
requestContent.Add(fileContent, "file", Path.GetFileName(GetFile.path));
return requestContent;
}
此方法中没有‘Channel’,因为我还不想发布它。 然后我设置"Public_url_Shared":true并获取公共URL(使用另一种方法)。 在响应Eevreything似乎一切正常,Shared被设置为True,并且我得到了一个PERMALINK_PUBLIC-值,我传递该值以发布包含此文件的消息,但是...
现在,我应该能够在使用从第二个方法获得的permarink_url时发布一条消息。这对图像是有效的。但它对文件不起作用。 我总是收到错误响应"no_file_data"。 以下是我的方法:
public MultipartFormDataContent SendMessageWithFile(SlackFileResponse resp)
{
var requestContent = new MultipartFormDataContent();
requestContent.Add(new StringContent(token), "token");
requestContent.Add(new StringContent(channel), "channel");
requestContent.Add(new StringContent(text), "text");
requestContent.Add(new StringContent("[{ "fallback":"Anhang", "text":"", "":"" + resp.permalink_public + ""}]"), "attachments");
return requestContent;
}
我是不是做错了什么?因为通过RTM-Slack,用户只需在其中拖放一个文件并添加一条消息即可。因此,这也必须通过SlackAPI实现。对吗?
推荐答案
以下是此方法不起作用的原因:
松弛威胁图像与其他文件不同。图像是您可以通过URL包含在邮件附件中的唯一类型的文件。为此,我们有附件的属性image_url
(和thumb_url
)。
有关所有可用附件属性的列表,请查看this page。
如果您要在Slack频道发布任何其他文件并对其进行评论,您需要通过files.upload
上传并立即共享。这一点很重要,因为目前还不能通过官方API在以后通过某个频道共享之前上传的文件。
若要在文件上载中包含注释,只需在API调用中设置initial_comment
属性。
示例:
var requestContent = new MultipartFormDataContent();
var fileContent = new StreamContent(GetFile.ReadFile());
requestContent.Add(new StringContent(token), "token");
requestContent.Add(new StringContent("my_channel"), "channels");
requestContent.Add(new StringContent("Check out this amazing new file"), "initial_comment");
requestContent.Add(fileContent, "file", Path.GetFileName(GetFile.path));
这篇关于如何使用C#通过SlackAPI上传文件(无图像)并同时将其注释到Slack的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用C#通过SlackAPI上传文件(无图像)并同时将


- 是否可以在 .Net 3.5 中进行通用控件? 2022-01-01
- C# 通过连接字符串检索正确的 DbConnection 对象 2022-01-01
- Windows 喜欢在 LINUX 中使用 MONO 进行服务开发? 2022-01-01
- 使用 rss + c# 2022-01-01
- 带问号的 nvarchar 列结果 2022-01-01
- 在 C# 中异步处理项目队列 2022-01-01
- CanBeNull和ReSharper-将其用于异步任务? 2022-01-01
- Azure Active Directory 与 MVC,客户端和资源标识同一 2022-01-01
- 在 LINQ to SQL 中使用 contains() 2022-01-01
- 为什么 C# 中的堆栈大小正好是 1 MB? 2022-01-01