文件附件适用于Microsoft Bot Emulator,但不适用于Skype

时间:2016-08-27 08:19:30

标签: c# botframework skype-bots

我想使用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发送文件的唯一方法是通过链接?直接发送是不可能的?但是如何使用仿真器呢?

1 个答案:

答案 0 :(得分:3)

我不知道它为什么在模拟器中工作,但不支持通过Content属性发送字节数组。 但是,根据thisthis条评论,您可以使用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
};