【发布时间】:2016-12-14 05:41:50
【问题描述】:
我在弄清楚如何使用 office365 api 来获取给定 conversationId 的消息时遇到了一些麻烦。
假设我的 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='."
}
}
我尝试了其他方法,例如将会话 ID 编码为 AAQkADlkOGJmMTFmLTc2NjMtMKL3My04ZDhkLTVmZWNjMzA1ODY0NAAQAB11Xh2opSpBiXifMEJjhow%3D 的 url,这会导致相同的错误。
我还尝试简单地删除 = 这似乎是吓坏了它的角色
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 过滤器会发生什么吗?
【问题讨论】:
标签: outlook office365 office365api office365-restapi