conversationThread 和 conversation 有什么区别?

What's the difference between conversationThread and conversation?

我正在调查文档,我不清楚 conversationThreadconversation 在 Microsoft Graph (v1 .0参考)?

conversation 的文档指出:一个会话是线程的集合,一个线程包含该线程的 posts。对话中的所有线程和 post 共享相同的主题。 关系是 线程。 在这里,我假设 same subject 表示在该对话的保护伞下?

另一方面,conversationThread 的文档指出:conversationThread 是 post 的集合。最后一个 post 的收件人集合是整个线程的聚合收件人。线程可以有越来越多的收件人。当从线程中删除收件人时,将创建一个新线程。 关系是 posts。这里没有线索,如果 conversationThread 是 posts 的集合,那与 conversation 提供的几乎相同?

我一直在努力做什么?我正在使用 Fiddler 来处理 HTTP 请求 groups/<id>/conversationsgroups/<id>/threads,我注意到最明显的区别是 threads 有一个 isLocked 属性 conversations 没有。然后我脑子里冒出这个问题:"Why and in which circumstances I'd be using group/<id>/threads over group/<id>/conversations anyway?"。可能是因为我不明白 conversationThreadconversation.

之间的区别

请记住,我是 Microsoft Graph 的新手,如果社区可以帮助我澄清这个问题,我将不胜感激。

非常感谢!

编辑 使用 Fiddler,我们成功地创建了一个新线程。但是,它并没有像预期的那样在指定的对话中创建新线程,而是创建了一个新对话以与新线程一起使用。 A 还尝试在新创建的线程中创建一个新的 post,但我遇到以下错误:"The OData request is not supported" 使用请求正文:“ { "body": { "contentType": "application/json", "content": "This is a test" } }

感谢您的关注和尝试小组对话 API。关于您的几个问题,我想与您分享我的理解:

  • "What exactly is the difference between conversationThread and conversation on Microsoft Graph (v1.0 Reference)?"

  • "Why and in which circumstances I'd be using group//threads over group//conversations anyway?"

就群组对话功能设计而言,正如您可能已经读到的那样,post 始终是某个线程的一部分,并且该线程始终是某个对话的一部分。在 API 支持方面,API 在会话和线程之间提供 "parity" - 不需要您始终为 post 引用父会话的便利性。需要明确的是,这并不意味着您可以在没有家长对话的情况下进行 post 或话题;您只是不必在每次访问现有线程或 post 时都必须引用父对话。我将从创建 post 开始: 如果您想开始 post 新对话,为方便起见,有几种方法可以做到:

(a) 您可以先 create a conversation (POST /groups//conversations)。您将在请求正文中指定一个新线程和 post。成功的查询将创建新的对话、线程和 post。

(b) 或者,您可以 create a thread without referencing any existing conversation (POST /groups//threads)。您将在请求正文中指定新线程和 post。成功的查询将创建一个包含该新线程和 post.

的新对话

创建 post 后,您可以使用其 ID 来获取、回复、转发、创建或访问该 post 的附件,方法是同时指定父会话和线程,或者仅通过指定父线程。这就是所谓的会话与线程的对等。

  • "Here I assume that same subject means under the umbrella of that conversation?"

是的,一个对话、它的线程和 post 都共享同一个主题。我觉得这里的"subject"是由题目属性.

代表的
  • "if conversationThread is a collection of posts, that's pretty much the same of what conversation offers?"

在对话中将线程和 post 拉到一起的是 "subject"。在最终用户场景中考虑一下——一旦对话中的某个人改变了主题,那个人就会开始新的对话。 在对话中,有时参与者可以从原始参与者的子集衍生出一个副线程。这构成了一个新的 "thread",因为主题保持不变,只是参与者减少了。 这就是会话和线程之间的功能设计差异。在 API 功能方面,您可以回复线程(或 post)并引用父线程,但不能仅通过引用父对话来回复。

  • "have also attempted creating a new post within the newly created thread"

我怀疑您对现有线程做了 POST 以尝试创建 post?

如果是这样,我想指出您不能使用 POST 创建新组 post。您可以通过以下方式之一创建 post: - 创建新对话时 (POST /groups//conversations) - 创建新线程时 (POST /groups//threads) - 回复主题时 - 回复 post

希望对您有所帮助。

Angelgolfer-ms