/ / La pièce jointe fonctionne dans Microsoft Bot Emulator mais pas dans Skype - c #, botframework, skype-bots

La pièce jointe fonctionne dans Microsoft Bot Emulator mais pas dans Skype - c #, botframework, skype-bots

Je souhaite envoyer une pièce jointe (.txt) au client Skype à l'aide de Microsoft Bot Framework V3 avec le package Bot Builder Nuget (3.2.0)

Voici comment j'ai créé la pièce jointe:

var replayFile = new Microsoft.Bot.Connector.Attachment();
replayFile.Name = "FileName";
replayFile.Content = "ByteArray";
replayFile.ContentType = "text/plain";

Cela fonctionne pour Bot Emulator (3.0.0.59), mais mon client Skype (7.26.0.101) sous Windows 10 ne voit que le texte du message, mais pas la pièce jointe.

J'ai également essayé l'interface utilisateur Web de Skype dans outlook.com, également sans pièce jointe.

Dans ce document: https://docs.botframework.com/en-us/csharp/builder/sdkreference/attachments.html

Ça dit:

S'il s'agit d'un fichier, il apparaîtra simplement comme un lien.

Cela signifie-t-il que la seule façon d'envoyer un fichier à l'aide de BotFramework est via un lien? L'envoi direct n'est pas possible? Mais comment ça se passe avec l’émulateur?

Réponses:

3 pour la réponse № 1

Je ne sais pas pourquoi cela fonctionne dans l'émulateur, mais l'envoi d'un tableau d'octets via la propriété Content n'est pas pris en charge. Cependant, selon ce et ce commentaires, vous pouvez envoyer une pièce jointe à l’aide d’un URI codé en base64:

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
};