2017-06-28 9 views
0

最後の1時間のユーザーのメールを受信したいと考えています。これは私が試したコードです:最後の1時間からMicrosoft Graphを使用して電子メールを取得するにはどうすればよいですか?

DateTimeオブジェクト:グラフを

DateTime filter = new DateTime(); 
filter = DateTime.UtcNow.AddHours(-1); 

コール:

await graphClient.Users[broker.Id].MailFolders.SentItems.Messages.Request().Filter(string.Format("SentDateTime ge '{0}'", filter.ToString("yyyy-MM-ddTHH:mm:ssZ"))).GetAsync(); 

私はMicrosoft.Graph.ServiceExceptionを得る:

バイナリ演算子互換性のないタイプが検出されました。演算子種別 'GreaterThanOrEqual'のオペランドタイプ 'Edm.DateTimeOffset'と 'Edm.String'が見つかりました。

どうすればこの問題を解決できますか?

+0

あなたが送信したアイテムのみをお探しですか?そして最後に、私たちがチェックして以来、ちょうど最後の1時間の理由がありますか? –

+0

@ MarcLaFleur-MSFTはい、送信されたアイテムのみです。私が作ることができるそのような要求はありますか?計画は毎時間その要求をすることでした。しかし、私が "最後にチェックして以来"私は強くそれを使用することを検討するだろう私は電子メールを得ることができれば。 –

答えて

1

ユーザーのメールを照会できるようにデルタクエリを統合し、次に最後のクエリ以降にそのユーザーにいくつかの新しいメールをすべて照会するように思えます。

我々がここでそれを行うだけの方法を示してドキュメントがあります:Get incremental changes to messages in a folder

を私は、これはあなたの主な質問に対処していないけど、私はこのことができます願っています!

+0

あなたが提供するインターフェースを使ってこれらのデルタクエリを作成する方法はありますか?それ以外の場合は、コードでリクエストを作成する方法が不明です。ありがとう! –

+0

はい、delta()メソッドを追加してデルタ結果を取得することができます。いくつかのコードが動作するのを知りたい場合は、SDKのデルタ単体テストを開始するのが最適です - https://github.com/microsoftgraph/msgraph-sdk-dotnet/blob/dec97e6bbb57940b3f823a7dfe887a11d7f6845b/tests/Microsoft .Graph.Test/Requests/Functional/DeltaQueryTests.cs –

関連する問題