У меня есть бот UCMA (конечная точка приложения), и я хочу передать файл между ботом и пользователем. Я просмотрел множество форумов следующим образом:
1. Link1 говорит: UCMA 3.0 не поддержка функции передачи файлов.
2. Link2 говорит: UCMA может работать с функцией передачи файлов, но не знает версию UCMA
Link2 Следуйте инструкциям на этот сайт . Я следую ему, но не могу достичь своей цели.
Что я делаю:
- добавляю ключ «Коммуникатор» в HKEY_CURRENT_USER \ Software \ Policies \ Microsoft
- добавить ключ «AllowUnencryptedFileTransfer» в HKEY_CURRENT_USER \ Software \ Policies \ Microsoft \ Communicator и установить значение = 1 (DWORD / Hexademical)
Какая у меня серверная среда:
- Win Server 2016
- Skype для бизнеса 2019
- SDK UCMA 6.0
Вот мой код:
private void InstantMessagingFlow_MessageReceived(object sender, InstantMessageReceivedEventArgs e)
{
InstantMessagingFlow instantMessagingFlow = (InstantMessagingFlow)sender;
//SendReply(instantMessagingFlow, new ReplyMessage(e.Sender.DisplayName + " said: " + e.TextBody));
ContentType mimeType = new ContentType("text/x-msmsgsinvite; charset=UTF-8");
mimeType.CharSet = "UTF-8";
StringBuilder sb = new StringBuilder();
sb.Append("Application-Name: File Transfer\r\n");
sb.Append("Application-GUID: {5D3E02AB-6190-11d3-BBBB-00C04F795683}\r\n");
sb.Append("Invitation-Command: INVITE\r\n");
sb.Append("Invitation-Cookie: 12345\r\n");
sb.Append("Application-File: FileTest\r\n");
sb.Append("Application-FileSize: 100\r\n");
sb.Append("Connectivity: N\r\n");
sb.Append("Encryption: R\r\n");
string s = sb.ToString();
byte[] htmlBytes = Encoding.UTF8.GetBytes(s);
instantMessagingFlow.BeginSendInstantMessage(mimeType, htmlBytes, result =>
{
instantMessagingFlow.EndSendInstantMessage(result);
}, instantMessagingFlow);
}