【问题标题】:Unable to get OpenTypeExtensionProperty for event using Graph API无法使用 Graph API 获取事件的 OpenTypeExtensionProperty
【发布时间】:2020-11-23 13:53:05
【问题描述】:

对于我们的一个应用程序,我正在尝试使用以下 C# 代码获取事件的扩展:

var result = graphServiceClient.User[userid].Calendar.Events[eventid].Extensions.Request().GetAsync().Result;

但是,我收到以下异常:

代码:ErrorInvalidRequest 消息:不支持 OData 请求。 ClientRequestId: f7a44c2f-ca79-4f79-9726-2cdc98d87e00

我在 stackoverflow 上发布的几个问题中找到了上述代码。

我们需要通过任何方式添加和获取 opentype 扩展。有人可以帮忙吗?

【问题讨论】:

    标签: microsoft-graph-api microsoft-graph-calendar


    【解决方案1】:

    首先,我使用 Microsoft Graph 资源管理器 create the event and add opentypeextension 到它:

    然后get the opentypeextensions 使用其 id 进行上述事件:

    代码将如下所示:

    GraphServiceClient graphClient = new GraphServiceClient( authProvider );
    
    var extension = await graphClient.Me.Events["'AAMkAGRlNWYmM5YjIzNTRhMwBGAAAAAAA-AAA='"].Extensions["Com.Contoso.Referral"]
        .Request()
        .GetAsync();

    【讨论】:

      【解决方案2】:

      以上方法对我有用,但是在我的情况下,我想检查特定扩展的所有 Outlook 事件,如果扩展不存在于任何事件中,我会收到以下错误:

      代码:ErrorItemNotFound 消息:在商店中找不到指定的对象。 ClientRequestId:a65d0d31-123b-4834-9bec-8d471d22b6e0

      为了解决上述问题,在遍历所有事件时,我在 try catch 块中添加了获取扩展的代码,并在 catch 块中添加了以下代码以继续循环,以防出现上述异常

      if (ex.InnerException.GetType() == typeof(ServiceException) &&
                          ex.InnerException.Message.Contains("Code: ErrorItemNotFound"))
                          continue;
      

      反正我的问题现在已经解决了。感谢您的帮助

      【讨论】:

      • 很高兴以上帮助..!!
      猜你喜欢
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-11-23
      相关资源
      最近更新 更多