文件附件在 Microsoft Bot Emulator 中有效,但在 Skype 中无效
File attachment works in Microsoft Bot Emulator but not in Skype
我想使用带有 Bot Builder Nuget 包 (3.2.0) 的 Microsoft Bot Framework V3 向 Skype 客户端发送附件 (.txt)
我是这样创建附件的:
var replayFile = new Microsoft.Bot.Connector.Attachment();
replayFile.Name = "FileName";
replayFile.Content = "ByteArray";
replayFile.ContentType = "text/plain";
这适用于机器人模拟器 (3.0.0.59),但我在 Windows 10 上的 Skype 客户端 (7.26.0.101) 只能看到消息的文本,但看不到附件。
我也在 outlook.com 中尝试了 Skype 的 Web UI,也没有附件。
在本文档中:https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.html
它说:
If it is a file then it will simply come through as a link
这是否意味着使用 BotFramework 发送文件的唯一方法是通过 link?不能直接寄吗?但是它如何使用模拟器工作?
我不知道为什么它在模拟器中工作,但不支持通过内容 属性 发送字节数组。
但是,根据 this and this 评论,您可以使用 base64 编码的数据 URI 发送附件:
byte[] data = GetAttachmentData();
var contentType = "text/plain";
var replayFile = new Microsoft.Bot.Connector.Attachment
{
Name = "FileName.txt",
ContentUrl = $"data:{contentType};base64,{Convert.ToBase64String(data)}",
ContentType = contentType
};
我想使用带有 Bot Builder Nuget 包 (3.2.0) 的 Microsoft Bot Framework V3 向 Skype 客户端发送附件 (.txt)
我是这样创建附件的:
var replayFile = new Microsoft.Bot.Connector.Attachment();
replayFile.Name = "FileName";
replayFile.Content = "ByteArray";
replayFile.ContentType = "text/plain";
这适用于机器人模拟器 (3.0.0.59),但我在 Windows 10 上的 Skype 客户端 (7.26.0.101) 只能看到消息的文本,但看不到附件。
我也在 outlook.com 中尝试了 Skype 的 Web UI,也没有附件。
在本文档中:https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.html
它说:
If it is a file then it will simply come through as a link
这是否意味着使用 BotFramework 发送文件的唯一方法是通过 link?不能直接寄吗?但是它如何使用模拟器工作?
我不知道为什么它在模拟器中工作,但不支持通过内容 属性 发送字节数组。 但是,根据 this and this 评论,您可以使用 base64 编码的数据 URI 发送附件:
byte[] data = GetAttachmentData();
var contentType = "text/plain";
var replayFile = new Microsoft.Bot.Connector.Attachment
{
Name = "FileName.txt",
ContentUrl = $"data:{contentType};base64,{Convert.ToBase64String(data)}",
ContentType = contentType
};