2014-08-29 4 views
2

Я пытаюсь получить события для пользователя из своей учетной записи Office 365, используя REST API, но отфильтровывая поле «Старт». Например, получить все события, которые происходят после даты: 2014-08-29T09: 13: 28' , но я всегда получение этого сообщения об ошибке

{ 
    "error": { 
    "code": "ErrorInvalidUrlQuery", 
    "message": "The query parameter '$filter' is invalid.", 
    "innererror": { 
     "message": "The query parameter '$filter' is invalid.", 
     "type": "Microsoft.Exchange.Services.OData.InvalidUrlQueryException", 
     "stacktrace": " at Microsoft.Exchange.Services.OData.Web.ODataQueryOptions.Populate() 
at Microsoft.Exchange.Services.OData.ODataContext..ctor(HttpContext httpContext, Uri requestUri, ServiceModel serviceModel, ODataPathWrapper odataPath, ODataUriParser odataUriParser) 
at Microsoft.Exchange.Services.OData.Web.RequestBroker.InitializeODataContext() 
at Microsoft.Exchange.Services.OData.Web.RequestBroker.Process()", 
     "internalexception": { 
     "message": "A binary operator with incompatible types was detected. Found operand types 'Edm.DateTimeOffset' and 'Edm.Int32' for operator kind 'Equal'.", 
     "type": "Microsoft.OData.Core.ODataException", 
     "stacktrace": " at Microsoft.OData.Core.UriParser.Parsers.BinaryOperatorBinder.PromoteOperandTypes(BinaryOperatorKind binaryOperatorKind, SingleValueNode& left, SingleValueNode& right) 
at Microsoft.OData.Core.UriParser.Parsers.BinaryOperatorBinder.BindBinaryOperator(BinaryOperatorToken binaryOperatorToken) 
at Microsoft.OData.Core.UriParser.Parsers.MetadataBinder.Bind(QueryToken token) 
at Microsoft.OData.Core.UriParser.Parsers.FilterBinder.BindFilter(QueryToken filter) 
at Microsoft.OData.Core.UriParser.ODataUriParser.ParseFilterImplementation(String filter, IEdmType elementType, IEdmNavigationSource navigationSource) 
at Microsoft.OData.Core.UriParser.ODataUriParser.ParseFilter() 
at Microsoft.Exchange.Services.OData.Web.ODataQueryOptions.Populate()" 
     } 
    } 
    } 
} 

Вот все, что я пробовал:

[Ressource] = https://outlook.office365.com/

URL: [Ressource] EWS/OData/Me/События $ фильтр = Start% 20eq% 20DateTime'2012-05-29T09: 13: 28'

url: [ressource] EWS/OData/Me/Events? $ filter = Start% 20eq% 20DateTime'20141 231'

URL: [Ressource] EWS/OData/Me/События $ Фильтр = месяц (Start)% 20eq% 2012

И я уже попробовал $ фильтр на поле строки или $? выберите в поле Запустите, и он отлично работает, поэтому я думаю, что моя ошибка вызвана форматом даты, но я не знаю, как ее решить, поэтому, если кто-нибудь может мне помочь, это будет здорово!

Спасибо!

+0

На основе документации API, кажется, что '$ filter' не поддерживается. http://msdn.microsoft.com/en-us/library/office/dn792114%28v=office.15%29.aspx – wdosanjos

+1

@wdosanjos Спасибо за ваш ответ, но по его документации Microsoft, кажется, говорит, что поддерживается: quote : "или отфильтрованный список с помощью параметра запроса параметра $ filter OData" из http://msdn.microsoft.com/EN-US/library/office/dn792114%28v=office.15%29.aspx#sectionSection3 – nicodri

+0

Вы " re право. Я попытался на своем конце, и я получаю ту же ошибку, хотя синтаксис url правильный. Я также пробовал с другими (не датированными) атрибутами с тем же результатом. – wdosanjos

ответ

3

Фильтрация по датам работает, но вы не можете делать все в спецификации OData v4. Например, все они работают для меня:

/Me/Events?$filter=Start eq 2014-08-28T21:00:00Z 
/Me/Events?$filter=Start ge 2014-08-28T21:00:00Z 

Добавление «DateTime» перед ним делает его не в состоянии. То же самое с функцией месяца. Если вы придерживаетесь формата выше, он должен работать на вас.

+0

Samir, can вы расширяете свое редактирование до моего ответа? В объекте Event нет свойства, называемого «DateTimeStart». –

+0

А, моя ошибка, я неправильно понял ваш ответ. Некоторые свойства других других объектов - это имя 'DateTimeX', и я думал, что вы ссылаетесь на них. Я вернусь к редактированию – samirahmed

0

Привет Просто увеличьте top = 100 или больше, что бы вы ни выбрали из своего почтового ящика.

https://outlook.office365.com/api/v2.0/me/MailFolders/Inbox/messages/?%24select=CreatedDateTime%2cLastModifiedDateTime%2cChangeKey%2cCategories%2cReceivedDateTime%2cSentDateTime%2cHasAttachments%2cSubject%2cBody%2cImportance%2cParentFolderId%2cSender%2cFrom%2cToRecipients%2cCcRecipients%2cBccRecipients%2cReplyTo%2cConversationId%2cIsDeliveryReceiptRequested%2cIsReadReceiptRequested%2cIsRead%2cIsDraft%2cWebLink&%24top=100&%24skip=0" 
Смежные вопросы