我目前正在GraphAPI中处理邮件数据。我需要获取邮件对话中消息的顺序。我有会话中消息的会话索引。
如何使用对话索引获取消息的位置/顺序
用户1消息转换索引:AQHXa/g7jienD/k6UUuD7h/+vh/4PQ==
用户2消息转换索引:AQHXa/g7jienD/k6UUuD7h/+vh/4PaspGJ7v
用户1消息转换索引:AQHXa/g7jienD/k6UUuD7h/+vh/4PaspGJ7vgAAARsM=
用户2消息转换索引:AQHXa/g7jienD/k6UUuD7h/+vh/4PaspGJ7vgAAARSOAAA49xA==
用户1消息转换索引:AQHXa/g7jienD/k6UUuD7h/+vh/4PaspGJ7vgAAARSOAAA49xIAAACfU
用户2消息转换索引:AQHXa/g7jienD/k6UUuD7h/+vh/4PaspGJ7vgAAARSOAAA49xIAAACfUgAAAOmw=`
我可以解释这是如何在Outlook中工作的,因为相应的标记被添加到了问题中。
ConversationIndex
属性是一个表示十六进制数的字符串。字符串中的有效字符包括数字0到9以及字母A到F(大写或小写(。
会话是一组具有相同ConversationTopic
属性值的相关消息。例如,在讨论应用程序中,用户可以将原始消息和响应保存在个人文件夹中。可以使用ConversationIndex
属性对消息进行标记,以便用户可以在会话中对消息进行排序。
此约定使用串联的时间戳值,会话中的每个新消息都会在ConversationIndex
字符串的末尾添加一个新的时间戳。当您按ConversationIndex
值对消息进行排序时,您可以看到消息之间的时间关系。
有关对话的详细信息,请参阅使用对话。
注意,Session对象提供了CreateConversationIndex方法来创建或更新会话索引。
private static getIsFirstMessageInConversation(conversationIndex?: string): boolean {
if (!conversationIndex) return false;
const FIRST_MESSAGE_IN_CONVERSATION_BYTES_LENGTH = 22;
return atob(conversationIndex).length === FIRST_MESSAGE_IN_CONVERSATION_BYTES_LENGTH;
}