【问题标题】:Graph API filter working on GraphExplorer however not working on SDKGraph API 过滤器在 GraphExplorer 上工作,但在 SDK 上不工作
【发布时间】:2020-09-03 09:03:25
【问题描述】:

这是怎么回事https://graph.microsoft.com/v1.0/me/onenote/notebooks?filter=tolower(name)eq 'my notebook'

Screenshot from Graph Explorer

当我尝试在 C# 中编写相同的代码时,我收到以下错误 代码:错误请求 消息:无效的过滤子句 内部错误: 附加数据: 日期:2020-09-02T20:01:24

我正在使用下面的代码。

var NoteBook = await GraphClient.Me.Onenote.Notebooks.Request().Filter($"name eq 'My Notebook'").GetAsync();

【问题讨论】:

    标签: microsoft-graph-api azure-ad-graph-api


    【解决方案1】:

    它不适用于https://graph.microsoft.com/v1.0/me/onenote/notebooks?filter=tolower(name) eq 'my notebook'。您在filter=xxx 之前错过了$

    正确的应该是https://graph.microsoft.com/v1.0/me/onenote/notebooks?$filter=tolower(displayName) eq 'my notebook'

    没有名为name 的属性。你可以得到结果,因为过滤器没有生效。您列出所有笔记本。正确的是displayName

    但在 SDK 中,笔记本类中没有定义 name 属性。这就是您在使用 SDK 时遇到错误的原因。

    在 SDK 中你应该使用这个代码:

    var NoteBook = await graphClient.Me.Onenote.Notebooks.Request().Filter($"displayName eq 'My Notebook'").GetAsync();
    

    【讨论】:

    • @praveenkandari 如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记将其从灰色切换为已填充。)。见meta.stackexchange.com/questions/5234/…。这对其他社区成员可能是有益的。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多