OutLook 365 API を使用して OData クエリ $search = "subject:pizza" を実行する必要がありますが、Outlookservicesclient を使用します (outlook 365 sdk で見つかりました。この nuget https://www.nuget.org/packages/Microsoft.Office365 .OutlookServices-V2.0/ )
このOutLookAPI OData クエリ リファレンスを参照してください
これは HttpClient を使用すると正しく機能しますが、.NET クライアント ライブラリを使用すると、非標準のクエリ パラメータを追加することはできないようです。
すなわち:var messages = await client.Users['mail@me.com'].Messages
.Where(m => m.IsRead == false)
.Take(50)
.ExecuteAsync();
次の RequestURIを生成https://outlook.office365.com/api/v2.0/Users('mail%40me.com')/Messages?$filter=IsRead eq false&$top=50
し、正しく実行します。
一方、次のことを試してみると、var query = client.Users['Mail@me.com'].Messages
.Context.CreateQuery<Message>("Users('Mail@me.com')/Messages")
.AddQueryOption("$search", "subject:pizza");
どちらかが戻りますException:Thrown: "Can't add query option '$search' because it begins with reserved character '$'." (System.NotSupportedException) A System.NotSupportedException was thrown: "Can't add query option '$search' because it begins with reserved character '$'."
AddQueryOption 行を省略すると、認証エラーが発生します。
$search=subject:pizza
RequestURIを追加するだけです。Outlookクライアントは組み込みのLinqメソッドに限定されているように見えるため、実際にレストクライアントを使用しないとこれは不可能に思えます。
クライアント ライブラリのリファレンス ドキュメントがないという事実を追加しました。Outlookservicesclient を介して $search を含めることが可能かどうかは誰にもわかりませんか?