我正在调查文档,我不清楚Microsoft Graph(v1.0参考)上 conversationThread 和会话之间究竟有什么区别?
conversation状态的文档:会话是一组线程,一个线程包含该线程的帖子。对话中的所有主题和帖子都共享相同的主题。关系是线程。 在这里,我假设同一主题意味着在该对话的保护下?
另一方面,conversationThread的文档指出: conversationThread是一组帖子。最后一个帖子的收件人集合是整个帖子的聚合收件人。线程可以拥有越来越多的收件人。从线程中删除收件人时会创建一个新线程。关系是帖子。这里不是一个线索,如果conversationThread是一个帖子的集合,那几乎与会话提供的一样?
我一直想做什么?我正在使用Fiddler来处理HTTP请求groups/<id>/conversations
和groups/<id>/threads
,我注意到最明显的区别是threads
具有isLocked
属性conversations
1}}没有。然后问题出现在我的脑海中:“为什么以及在什么情况下我会group/<id>/threads
使用group/<id>/conversations
而不是
{
"body": {
"contentType": "application/json",
"content": "This is a test"
}
}
?”。也许是因为我不理解 conversationThread 和对话之间的区别。
请记住,我是Microsoft Graph的新手,如果社区可以帮助我澄清这个问题,我真的很感激。
非常感谢提前!
修改
使用Fiddler,我们设法创建了一个新线程。但是,不是按预期在指定的对话中创建新线程,而是创建一个新的对话以与新线程一起使用。 A还尝试在新创建的线程中创建新帖子,但我面临以下错误:“不支持OData请求”使用请求正文:“SDWebImageCache
”
答案 0 :(得分:6)
感谢您的关注并尝试使用群组对话API。我想就你的几个问题与你分享我的理解:
&#34;在Microsoft Graph(v1.0参考)上的conversationThread和对话之间究竟有什么区别?&#34;
&#34;为什么以及在哪种情况下我会使用群组//线程而不是群组//对话?&#34;
就小组对话功能设计而言,正如您可能已经阅读过的那样,帖子总是某个线程的一部分,而某个对话的线程部分。在API支持方面,API提供了&#34; parity&#34;在会话和线程之间 - 不要求你总是引用帖子的父对话的便利性。需要明确的是,这并不意味着您可以在没有父母对话的情况下拥有帖子或帖子;每次访问现有帖子或帖子时,您都不必参考父对话。我将从创建帖子开始: 如果您想开始发布新会话,为方便起见,有几种方法可以做到:
(a)您可以先create a conversation(POST / groups //对话)。您将指定一个新线程并在请求正文中发布。成功的查询将创建新的对话,线程和帖子。
(b)或者,你可以create a thread without referencing any existing conversation(POST / groups // threads)。您可以在请求正文中指定新主题并发布。成功的查询将创建包含该新线程和帖子的新会话。
创建帖子后,您可以通过指定父对话和线程,或仅指定父线程,使用其ID来获取,回复,转发,创建或访问该帖子的附件。这就是所谓的对话和线程平价。
是的,一个对话,它的主题和帖子都有相同的主题。我认为&#34;主题&#34;这里由主题属性表示。
在谈话中将线索和帖子拉到一起的是&#34;主题&#34;。在最终用户场景中考虑它 - 一旦对话中的人改变主题,该人就开始新的对话。 在对话中,有时参与者可以使用原始参与者的子集来剥离侧线程。这构成了一个新的线索&#34;因为主题保持不变,只有更少的参与者。 这是会话和线程之间的功能设计差异。在API功能方面,您可以回复线程(或帖子)并引用父线程,但不能仅通过引用父对话来回复。
我怀疑你是否对现有线程进行过POST以尝试创建帖子?
如果是这种情况,我想指出您不能使用POST来创建新的组帖子。您可以通过以下方式之一创建帖子: - 创建新会话时(POST / groups //对话) - 创建新线程时(POST / groups // threads) - 回复帖子时 - 回复帖子时
希望有所帮助。
Angelgolfer-MS