У меня возникли проблемы с выяснением того, как использовать API office365 для получения сообщений с conversationId
.
Допустим, мой идентификатор беседы равен AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow=
.
Я сделаю запрос, как
https://outlook.office.com/api/v1.0/me/Messages?$filter=ConversationId%20eq%20AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow=
Это приводит к такому 400
ответу:
{
"error": {
"code": "RequestBroker-ParseUri",
"message": "Syntax error at position 98 in 'ConversationId eq AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow='."
}
}
Я пробовал другие вещи, такие как URL-адрес, кодирующий идентификатор разговора в AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow%3D
, что приводит к той же ошибке.
Я также попытался просто удалить =
, который, кажется, является персонажем, который его бесит.
https://outlook.office.com/api/v1.0/me/Messages?$filter=ConversationId%20eq%20AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow
но это приводит к следующей ошибке
{
"error": {
"code": "RequestBroker-ParseUri",
"message": "Could not find a property named 'AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow' on type 'Microsoft.OutlookServices.Message'."
}
}
Я также пытался возиться с заглавными буквами URL и использовать знаки +
вместо %20
для строки фильтра, но я постоянно получаю 400 ошибок.
Однако я могу фильтровать по другим полям. Например
https://outlook.office.com/api/v1.0/me/Messages?$filter=IsRead%20eq%20true
возвращает сообщения, отфильтрованные, как я и ожидал.
Есть идеи, что может происходить с фильтром ConversationId
?