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上传文件(无图像)并同时将
基础教程推荐
- 覆盖 Json.Net 中的默认原始类型处理 2022-01-01
- C# - 如何列出发布到 ASPX 页面的变量名称和值 2022-01-01
- 我什么时候应该使用 GC.SuppressFinalize()? 2022-01-01
- Page.OnAppearing 中的 Xamarin.Forms Page.DisplayAlert 2022-01-01
- 如何使用OpenXML SDK将Excel转换为CSV? 2022-01-01
- 从 VB6 迁移到 .NET/.NET Core 的最佳策略或工具 2022-01-01
- C# - 将浮点数转换为整数...并根据余数更改整数 2022-01-01
- 使用 SED 在 XML 标签之间提取值 2022-01-01
- 创建属性设置器委托 2022-01-01
- 当键值未知时反序列化 JSON 2022-01-01