我想使用Microsoft Bot Framework V3和Bot Builder Nuget包(3.2.0)将附件(.txt)发送到Skype客户端
这就是我创建附件的方式:
var replayFile = new Microsoft.Bot.Connector.Attachment();
replayFile.Name = "FileName";
replayFile.Content = "ByteArray";
replayFile.ContentType = "text/plain";
这适用于Bot仿真器(3.0.0.59),但Windows 10上的Skype客户端(7.26.0.101)只能看到消息的文本,而不能看到附件。
我还在outlook.com中尝试过Skype的Web用户界面,也没有附件。
在本文档中:https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.html
它说:
如果是文件,那么它只会作为链接
这是否意味着使用BotFramework发送文件的唯一方法是通过链接?直接发送是不可能的?但是如何使用仿真器呢?
答案 0 :(得分:3)
我不知道它为什么在模拟器中工作,但不支持通过Content属性发送字节数组。 但是,根据this和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
};