从 MS Graph 获取最近的对话消息 API
Get recent conversation message from MS Graph API
我无法使用 MS 图表从电子邮件中获取对话节点 API。我需要最近的电子邮件记录。
我的应用程序使用 Microsoft.Exchange.WebServices 来接收电子邮件和对话,现在我正在将此应用程序升级到 MS Graph API。
旧代码:
EmailMessage email = EmailMessage.Bind(service, new ItemId(emailId));
ConversationResponse response = service.GetConversationItems(email.ConversationId,
properties,
null,
null,
ConversationSortOrder.TreeOrderAscending);
foreach (ConversationNode objC in response.ConversationNodes)
{
foreach (Item objItem in objC.Items)
{
objItem.Load(new PropertySet(EmailMessageSchema.UniqueBody, ItemSchema.Attachments,
EmailMessageSchema.Sender,
EmailMessageSchema.Subject));
}
}
图 API:
Message message = await _client.Users[_config.UserName].Messages[emailId]
.Request()
.GetAsync();
我没有找到任何 属性 或方法来获取消息中的对话节点。
您可以使用 ConversationId 和过滤器来获取对话中的所有消息,例如
var ConversationMessages = await GraphServiceClient.Users[UserId].Messages.Request().Filter("conversationid eq '" + Message.ConversationId + "'").GetAsync();
如果您希望在最后收到的订单中返回消息,您还需要在过滤器中包含 receivedDateTime,然后您可以按该顺序进行排序(不会出错)例如
var ConversationMessages2 = await GraphServiceClient.Users[UserId].Messages.Request().Filter("(receivedDateTime gt 2020-08-20) and (conversationid eq '" + Message.ConversationId + "')").OrderBy("receivedDateTime desc").GetAsync();
我无法使用 MS 图表从电子邮件中获取对话节点 API。我需要最近的电子邮件记录。
我的应用程序使用 Microsoft.Exchange.WebServices 来接收电子邮件和对话,现在我正在将此应用程序升级到 MS Graph API。
旧代码:
EmailMessage email = EmailMessage.Bind(service, new ItemId(emailId));
ConversationResponse response = service.GetConversationItems(email.ConversationId,
properties,
null,
null,
ConversationSortOrder.TreeOrderAscending);
foreach (ConversationNode objC in response.ConversationNodes)
{
foreach (Item objItem in objC.Items)
{
objItem.Load(new PropertySet(EmailMessageSchema.UniqueBody, ItemSchema.Attachments,
EmailMessageSchema.Sender,
EmailMessageSchema.Subject));
}
}
图 API:
Message message = await _client.Users[_config.UserName].Messages[emailId]
.Request()
.GetAsync();
我没有找到任何 属性 或方法来获取消息中的对话节点。
您可以使用 ConversationId 和过滤器来获取对话中的所有消息,例如
var ConversationMessages = await GraphServiceClient.Users[UserId].Messages.Request().Filter("conversationid eq '" + Message.ConversationId + "'").GetAsync();
如果您希望在最后收到的订单中返回消息,您还需要在过滤器中包含 receivedDateTime,然后您可以按该顺序进行排序(不会出错)例如
var ConversationMessages2 = await GraphServiceClient.Users[UserId].Messages.Request().Filter("(receivedDateTime gt 2020-08-20) and (conversationid eq '" + Message.ConversationId + "')").OrderBy("receivedDateTime desc").GetAsync();