前两篇文章介绍了如何对用户的在线状态和通话记录进行数据统计。这篇文章我们来看看如何统计用户的聊天消息。
在介绍具体 api 如何调用前,我们可以先看一下 Teams 里对于 Message 的层级结构,在 Teams 里,message有两种,一种是 Team 的 Channel 的 message,一种是对一对聊天或者群聊里的 message。他们的层级设计是不同的。
Channel 里的消息
它的层次结构如下:
Team -> Channel -> Message -> Reply 一个 tenant 里有多个 Team,每个 Team 里可以有多个 Channel,每个 Channel 里有多个 Message,每个 Message 可以有 0 到 n 个 reply消息。
所以我们使用 graph api 来获取信息的时候,我们先获取 teams 列表,因为 graph api目前没有一个简单的获取 team 列表的接口,所以必须要用下面这个获取 group 列表的接口,再加上 filter。这是一个已知的问题,希望以后能被fix掉。
GET /groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team')
Response:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#groups",
"value": [
{
"id": "02bd9fd6-8f93-4758-87c3-1fb73740a315",
"displayName": "HR Taskforce",
"visibility": "Private"
...
},
...
]
}