首页 > 解决方案 > Microsoft Graph API:通过展开和筛选获取消息失败,并出现异常:“找到不平衡的括号表达式。” (使用 C#)

问题描述

使用 Microsoft Graph 从 CONTOSO 通过其属性标记获取消息和预定义属性时遇到问题。我想获取带有属性标签“0x001a”的“ItemClass”属性作为扩展属性。

  1. 使用图形资源管理器时,以下 GET 请求可以正常工作:

GET https://graph.microsoft.com/v1.0/me/messages/AAMkADllMzJhZmVmLWE4MzgtNDViZS04NmM5LTBjMDhiMTBlNzMwYwBGAAAAAABJSnHDPwmbTJ60RQw_Q9SDBwCyg33-YW4bRI0rrBOy6gXhAAAAAAEMAACyg33-YW4bRI0rrBOy6gXhAAAXMQ5nAAA=?$expand=SingleValueExtendedProperties($filter=Id eq 'String 0x001a')

  1. 如果我从 c# 发出相同的请求,即使我使用 URL 编码(参见下面代码中的 B),我也会收到以下异常:

消息:解析 OData 选择和展开失败:找到不平衡的括号表达式。

c# 代码如下所示:

    ClientCredentialProvider authenticationProvider = 
        new ClientCredentialProvider(confidentialClientApplication);
    
    GraphServiceClient graphServiceClient = 
        new GraphServiceClient(authenticationProvider);

    var message = await this.GraphServiceClient
        .Me
        .Messages["AAMkADllMzJhZmVmLWE4MzgtNDViZS04NmM5LTBjMDhiMTBlNzMwYwBGAAAAAABJSnHDPwmbTJ60RQw_Q9SDBwCyg33-YW4bRI0rrBOy6gXhAAAAAAEMAACyg33-YW4bRI0rrBOy6gXhAAAXMQ5nAAA="]
        .Request() 
        .Expand("singleValueExtendedProperties($filter=id eq 'String 0x001A'") // A
        //.Expand("singleValueExtendedProperties(%24filter%3D(id%20eq%20%27String%200x001A%27)") // B) 
        .GetAsync();

过滤器表达式有什么问题?

标签: c#microsoft-graph-apimicrosoft-graph-mail

解决方案


).Expand(). 将其更改为

.Expand("singleValueExtendedProperties($filter=id eq 'String 0x001A')")

推荐阅读