有没有更好的方法在机器人应用程序中启动 outlook add-appointment window?

Is there any better way to launch outlook add-appointment window in bot application?

我需要在机器人应用程序中启动 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日历约会的方法。

您的代码必须调用 oAppointment.Save

你到底想做什么?静默创建约会(然后您上面的代码需要调用 oAppointment.Save)或将其显示给用户(然后调用 oAppointment.Display)?

如果您的代码 运行 在服务器上,请创建一个 iCal 文件并让用户下载并在(本地)Outlook 中打开 - 它会很乐意显示约会。

Steve 提到你可以使用 Microsoft Graph。

您可以将 ics 文件作为媒体附件发送(我没试过)。

或者您可以调查协议处理程序 outlookcal 是否支持深度 linking。

我想这个 link 告诉你它在 Teams 中是如何工作的 https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/deep-links