Есть ли какой-нибудь лучший способ запустить окно назначения Outlook в бот-приложении? - PullRequest
0 голосов
/ 12 марта 2019

Мне нужно запустить календарь календаря Outlook в приложении бота. Я нашел приведенный ниже код в документации Microsoft для запуска электронной почты Outlook.

var message = context.MakeMessage() as IMessageActivity;
message.ChannelData = JObject.FromObject(new
{
  action = new { type = "LaunchUri", uri = "mailto:someone@example.comsubject=This%20is%20the%20subject&body=This%20is%20t e%20body"
   } 
 });
   await context.PostAsync(message);

А также я попытался добавить запись в Microsoft.Office.Interop.Outlook, у меня это тоже не работает.

            Outlook.Application outlookApp = new Outlook.Application(); // creates new outlook app
            Outlook.AppointmentItem oAppointment = (Outlook.AppointmentItem)outlookApp.CreateItem(Outlook.OlItemType.olAppointmentItem); // creates a new appointment
            oAppointment.Subject = apt.Subject;
            oAppointment.Body = apt.Body;
            oAppointment.Location = apt.Location;
            oAppointment.Start = Convert.ToDateTime(apt.StartTime);
            oAppointment.End = Convert.ToDateTime(apt.EndTime);

Есть ли лучший способ запустить встречу календаря Outlook.

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Стив упомянул, что вы можете использовать Microsoft Graph.

Возможно, вы сможете отправить файл ics в виде медиа-вложения (я не пробовал).

Или вы можете проверить, еслиобработчик протокола outlookcal: поддерживает глубокую связь.

Я думаю, что эта ссылка расскажет вам, как она работает в командах https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deep-links

0 голосов
/ 12 марта 2019

Ваш код должен звонить oAppointment.Save.

Что именно вы пытаетесь сделать? Молча создать встречу (тогда вам нужно набрать код, указанный выше oAppointment.Save) или отобразить ее пользователю (затем позвонить oAppointment.Display)?

Если ваш код выполняется на сервере, создайте файл iCal и разрешите пользователю загружать и открывать в (локальном) Outlook - он будет рад отобразить встречу.

...