2

我想使用带有 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";

这适用于 Bot Emulator (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

它说:

如果它是一个文件,那么它只会作为一个链接出现

这是否意味着使用 BotFramework 发送文件的唯一方法是通过链接?不能直接发送吗?但是它是如何使用模拟器工作的呢?

4

1 回答 1

3

我不知道为什么它在模拟器中工作,但不支持通过 Content 属性发送字节数组。但是,根据thisthis comments,您可以使用 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
};
于 2016-09-04T18:39:26.683 回答