Microsoft graph api 通过MS Graph API更新事件删除事件中的连接按钮

Microsoft graph api 通过MS Graph API更新事件删除事件中的连接按钮,microsoft-graph-api,microsoft-teams,outlook-calendar,Microsoft Graph Api,Microsoft Teams,Outlook Calendar,我已在outlook日历中创建了一个事件。该事件包含团队加入链接。 当我从MS Graph API更新事件时,join按钮被删除 以下是我正在做的工作的示例代码: void UpdateEventInCalendar(string eventId) { var getCalEvent = Task.Run(() => { return service.Me.Events[eventId].Request().GetAsync(

我已在outlook日历中创建了一个事件。该事件包含团队加入链接。 当我从MS Graph API更新事件时,join按钮被删除

以下是我正在做的工作的示例代码:

void UpdateEventInCalendar(string eventId)
{
    var getCalEvent = Task.Run(() =>
            {
                return service.Me.Events[eventId].Request().GetAsync();
            });
    Task.WaitAll(getCalEvent);
    BodyType bodyType = BodyType.Text;
    Event eventToUpdate = getCalEvent.Result;
    Event updatedEvent = new Event();
    updatedEvent.Id = eventToUpdate.Id;
    updatedEvent.Subject = "Updated text";
    updatedEvent.ShowAs = eventToUpdate.ShowAs;
    updatedEvent.Body = new ItemBody
            {
                ContentType = bodyType,
                Content = "Some new content"
            };
    graphServiceClient.Me.Events[updatedEvent.Id].Request().UpdateAsync(updatedEvent.Id);
}
更新前的事件:

事件更新内容:

更新后的事件:


如何在更新事件时保留事件?

尝试不更新正文,您将能够使其正常工作。看这个。是的,如果您在没有isonlinemeeting的情况下更新正文,团队会议blob将被删除,这将使isonlinemeeting属性为false,并且我们正在松开按钮。

作为一种解决方法,您可以尝试此方法以保持在线会议的显示:

第一:在你的加法函数中,你的身体应该是这样的

AddedEvent.Body = new ItemBody
            {
                ContentType = BodyType.Html,
                Content = "<p id = 'MsgContent'>Your Body</p>"
            };
                HtmlDocument html = new HtmlDocument();
                html.LoadHtml(EventToUpdate.Body.Content);
                html.GetElementbyId("Msgcontent").InnerHtml = "Your new body";
                updatedEvent.Body = EventToUpdate.Body;
                updatedEvent.Body.Content = html.DocumentNode.OuterHtml;

尝试不更新主体,您将能够使其工作。看到了吗?@Shiva MSFTIdentity反过来如何,是否也可以将团队会议链接部分添加到事件正文中并显示“加入”按钮?@Shiva MSFTIdentity我的用例还涉及更新正文。有可能实现吗?@Stephan您不能这样做,因为有另一个名为isonlinemeeting with的属性正在更新主体时切换。所以尽量不要更新主体,它会起作用的。@AmitSingh,正如github链接中所说,我也面临同样的问题,所以在您的场景中,尝试测试更新主体,直到isonlinemeeting等于true,然后停止。记住,当isonlinemeeting切换时,会议url会更改。尝试一下,看看这是否有帮助。谢谢,这解决了我的问题。@M Elhalwany和@Amit Singh代码的第二部分在哪里编写?因为我还想更改正文部分,还想加入会议按钮nemail@KinjalGor您可以编写第二部分来更新代码。在我的例子中,我在一个API调用中创建事件,并在另一个API调用中更新数据。如果您想一次性完成,可以创建事件并立即更新它。