【问题标题】:Fetch messages filtered by conversationId via Office365 API通过 Office365 API 获取由 conversationId 过滤的消息
【发布时间】: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


    【解决方案1】:

    您需要用单引号将ConversationId 括起来。 这就是我在 C# 中伪造请求的方式

    string finalUrl = "https://outlook.office.com/api/beta/me/Messages?$filter=" + HttpUtility.UrlEncode(string.Format("ConversationId eq '{0}'", conversationId));
    

    【讨论】:

    • 这是我的问题的正确答案 - 但我有一个跟进。目前使用该过滤器我得到0个结果,即使它是一个真正的conversationId。所以我可以获取一条包含我的 conversationId 的消息,但是当我按 conversationId 过滤时,不会返回该消息。您对此有解决方案或解释吗?
    • 1) 您确定身份验证承载是针对带有此ConversationId 的邮箱的吗? 2)您可以尝试使用更新版本的 api,例如v2 还是测试版?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 2020-05-16
    相关资源
    最近更新 更多