【问题标题】:Using Microsoft Graph client sdk how would you use search Odata query使用 Microsoft Graph 客户端 sdk 你将如何使用搜索 Odata 查询
【发布时间】:2021-05-07 10:16:02
【问题描述】:

使用 Microsoft Graph 客户端 sdk,如果主题或正文包含某个搜索词,将如何使用搜索 Odata 查询进行查找。

Graph Client api 中提供了 $search Odata 查询参数,但我找不到如何使用 c# 的客户端 sdk 使用该参数。

【问题讨论】:

    标签: c# asp.net microsoft-graph-api


    【解决方案1】:

    您可以通过将QueryOptions 列表传递给Request 方法来添加任何查询参数。

    List<QueryOption> options = new List<QueryOption>
    {
         new QueryOption("$search", "lunch")
    };
    var messages = await client.Me.Messages.Request(options).GetAsync();
    

    文档:https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dev/docs/overview.md#custom-query-options

    【讨论】:

    • 谢谢,我在文档中找这个,但没有找到。
    • 还有一件事,当我使用 Outlook 邮件 api 中指定的“主题:pizza”或“来自:help@contoso.com”进行搜索时,我收到一条错误消息,指出“:”字符是无效。
    • 只需要在字符串本身中用双引号将搜索词括起来。我不得不像这样用 \ 转义双引号; string term = "\"subject:pizza\"".
    • 太棒了!很高兴您完成了这项工作,如果您需要更多帮助,请告诉我们。我还将向团队反馈我们应该支持 $search 的辅助方法,就像我们对 $filter 和其他 OData 查询参数所做的那样,这样您就不必传递自定义查询选项。
    【解决方案2】:

    从上面的 @JohnStaurt 的 cmets 中捎带,这对我有用:

    List<QueryOption> options = new List<QueryOption>
    {
         new QueryOption("$search", "\"displayName:team\" OR \"description:team\"")
    };
    

    【讨论】:

      猜你喜欢
      • 2018-06-20
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-29
      • 1970-01-01
      相关资源
      最近更新 更多