2016-02-08 85 views
0

我試圖獲得並從Office 365 REST API過濾日曆事件,用下面的查詢:

https://outlook.office.com/api/v2.0/users/[email protected]/calendars/AAAAAAAAAAA/events?$top=100&$select=BodyPreview&$filter=Start ge 2016-02-10T22:00:00Z 

所以我想100個結果只有BodyPreview作爲所有事件的返回值大於2016-02-10 22:00:00。

我收到錯誤消息是這一個:

ERROR request returned 400 
error: 
code: 'RequestBroker-ParseUri', 
message: 'A binary operator with incompatible types was detected. Found operand types \'Microsoft.OutlookServices.DateTimeTimeZone\' and \'Edm.DateTimeOffset\' for operator kind \'GreaterThanOrEqual\'.' 

不使用濾鏡選項查詢完美的作品。那麼如何讓我的查詢代表'Microsoft.OutlookServices.DateTimeTimeZone'類型呢?

我看了一下這個帖子: Odata $filter for the date in the Office 365 REST API

但我看不到我的查詢和一個在後的區別。

https://msdn.microsoft.com/en-us/office/office365/api/complex-types-for-mail-contacts-calendar上的所有示例在示例中未提及此類型的DateTimeTimeZone查詢。

我也試過這個查詢格式:

datetime'2016-01-10T22:00:00' 

也沒有運氣。 任何想法?

回答

3

StartEndchanged in the beta and v2 endpoints的類型。它現在是一個複雜的類型,所以你需要改變你的過濾了一下:

$filter=Start/DateTime ge 2016-02-10T22:00:00Z 
+0

感謝@Jason的快速反應,遺憾的是我仍然得到同樣的錯誤消息:(這是我用'/事件查詢? $ top = 100&$ select = BodyPreview&$ filter = Start/DateTime ge 2016-02-10T22:00:00Z' – user263367

+0

我需要將DateTime放在引號中才能使其工作'$ filter = Start/DateTime eq \'2015- 09-25T09:00:00現在它可以工作了,再次感謝@Jason! – user263367

+0

需要注意的是,您還可以使用'CalendarView'來獲取指定時間窗口中的所有事件,這有助於擴展循環(如果這符合你想要達到的目標,當然!) –