2

我正在调查文档,但我不清楚conversationThread和Microsoft Graph 上的对话(v1.0 参考)之间到底有什么区别?

对话的文档状态:对话是线程的集合,线程包含该线程的帖子。对话中的所有线程和帖子共享相同的主题。关系是线程。在这里,我假设同一主题意味着在该对话的保护伞下?

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

我一直在努力做什么?我正在使用 Fiddler 来处理 HTTP 请求groups/<id>/conversationsgroups/<id>/threads并且我注意到最明显的区别是它threads有一个没有的isLocked属性。conversations然后我的脑海中突然出现了一个问题:“为什么以及在什么情况下我会使用group/<id>/threadsover group/<id>/conversations?”。也许是因为我不明白conversationThreadconversation之间的区别。

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

提前谢谢了!

编辑 使用 Fiddler,我们设法创建了一个新线程。但是,它不是按预期在指定对话中创建新线程,而是创建一个新对话以与新线程一起使用。A 还尝试在新创建的线程中创建新帖子,但我面临以下错误:“不支持 OData 请求”使用请求正文:“ { "body": { "contentType": "application/json", "content": "This is a test" } }

4

1 回答 1

6

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

  • “conversationThread 和 Microsoft Graph 上的对话(v1.0 参考)到底有什么区别?”

  • “为什么以及在什么情况下我会使用组//线程而不是组//对话?”

就群组对话功能设计而言,您可能已经阅读过,帖子始终是某个线程的一部分,而该线程始终是某个对话的一部分。在 API 支持方面,API 提供了对话和线程之间的“奇偶性”——不需要您始终引用父对话的帖子的便利性。需要明确的是,这并不意味着您可以在没有家长对话的情况下发布帖子或主题;您不必每次访问现有线程或帖子时都必须参考父对话。我将从创建帖子开始:如果您想开始在新对话中发帖,为了您的方便,有几种方法可以做到:

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

(b) 或者,您可以在不引用任何现有对话的情况下创建线程(POST /groups//threads)。您将指定新线程并在请求正文中发布。成功的查询将创建一个包含该新线程和帖子的新对话。

创建帖子后,您可以使用其 ID 获取、回复、转发、创建或访问该帖子的附件,方法是同时指定父对话和线程,或者仅指定父线程。这就是所谓的对话和线程奇偶校验。

  • “在这里,我假设同一个主题意味着在那次谈话的保护伞下?”

是的,一个对话、它的主题和帖子都共享相同的主题。我认为这里的“主题”由主题属性表示。

  • “如果 conversationThread 是帖子的集合,那与对话提供的内容几乎相同?”

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

  • “还尝试在新创建的线程中创建新帖子”

我怀疑您对现有线程进行了 POST 以尝试创建帖子?

如果是这种情况,我想指出您不能使用 POST 来创建新的群组帖子。您可以通过以下方式之一创建帖子: - 创建新对话时 (POST /groups//conversations) - 创建新话题时 (POST /groups//threads) - 回复话题时 - 回复时发帖

希望有帮助。

Angelgolfer-ms

于 2016-02-25T22:16:15.827 回答