Teams数据统计 - 用户在线离线状态
前几天我在wechat的moments里看到以为朋友发了腾迅会议的对用户个人的年度数据统计,看上去很有大数据感。
实际上 Teams 也具备的类似的能力,只是它把这个能力开放给了开发人员,我们可以通过强大的 Graph API,获取大量的数据信息(当然,为了保证数据安全,你的app必须获得 tenant 管理员的同意)。
我接下来的几篇文章就集中介绍一下如何获取这些信息,有兴趣的开发者可以轻松使用这些 api 来提供用户的数据统计功能。
我们这篇文章先来介绍一下用户在线离线状态 presence。
获取某一个用户的状态
GET /users/{id}/presence
获取多个用户的状态
POST /communications/getPresencesByUserIdRequest body:
{"ids": ["fa8bf3dc-eca7-46b7-bad1-db199b62afc3", "66825e03-7ef5-42da-9069-724602c31f6b", ... ]
}
这两个 api 都需要一个权限 Presence.Read.All
。下面是api的返回内容:
{"value": [{"id": "fa8bf3dc-eca7-46b7-bad1-db199b62afc3","availability": "Busy","activity": "InAMeeting"},{"id": "66825e03-7ef5-42da-9069-724602c31f6b","availability": "Away","activity": "Away"}]
}
可以看到 teams 把用户的状态做的很细,有两个字段 availability
和 activity
。
availability
可能的值有:Available, AvailableIdle, Away, BeRightBack, Busy, BusyIdle, DoNotDisturb, Offline, PresenceUnknownactivity
可能的值有:Available, Away, BeRightBack, Busy, DoNotDisturb, InACall, InAConferenceCall, Inactive, InAMeeting, Offline, OffWork, OutOfOffice, PresenceUnknown, Presenting, UrgentInterruptionsOnly
这么多值,分别代表什么意思呢?在Teams里这些状态如下表:
User configured | App configured | |
---|---|---|
Available | Available | |
Available, Out of Office. (当用户设置了自动回复功能,Teams就会设置成Out of office状态) | ||
Busy | Busy | |
In a call | ||
In a meeting | ||
On a call, out of office | ||
Do not disturb | ||
Presenting | ||
Focusing. 当用户在我们的日历里设置了focus时间,Teams 就会显示这个状态 | ||
Away | Away | |
Away Last Seen time | ||
Be right back | ||
Appear offline | Offline. 当用户没有在任何设备登入,几分钟后就会显示这个状态 | |
Status unknown | ||
Out of Office | ||
知道了这些,各位是不是已经在心里有这个统计 app 的想法了?比如可以弄一个 Azure Function,并且使用 timer trigger,每隔几分钟或者几小时,就调用上面的 api,来获取公司里用户的状态,然后保存到数据库中,后面的统计就可以从数据库里 query 了,当然为了统计的效率,可能需要对数据存储做一些优化,比如某个用户的状态如果没有变化,就不重复记录。统计时也可能需要一些复杂的 sql 语句。不过一旦你有了用户在线离线的数据,统计则是水到渠成的事情了。
Teams数据统计 - 用户在线离线状态相关推荐
- springboot使用监听器实现用户在线离线状态的监控
520也依旧勤奋的写着代码,我真是太勤勉了 实现了用户登录的监听器,实时监听session,以此控制数据库中用户的登录状态 本来在监听器上同时加入了@Component@WebListener,随后监 ...
- 阿里云物联网批量获取设备的在线离线状态
一.背景 我们在做物联网的时候,除了控制设备进行一些操作之外.设备的在线离线显示也是很重要的.如果设备离线的话,此时用户操作设备,设备并不会做出反应.对用户而言,操作体验当然是非常不好的. 这边我们可 ...
- Teams数据统计 - 聊天消息
前两篇文章介绍了如何对用户的在线状态和通话记录进行数据统计.这篇文章我们来看看如何统计用户的聊天消息. 在介绍具体 api 如何调用前,我们可以先看一下 Teams 里对于 Message 的层级结构 ...
- Teams数据统计 - 通话记录
上篇文章介绍了如何获取用户的在线状态,这篇文章我们记录介绍如何统计用户通话记录. 首先,Teams为了安全,它要求 app 要有 CallRecords.Read.All 权限.然后就可以通过这个ap ...
- html检测用户在线离线,HTML5 --- navigator.onLine 离线检测(示例代码)
navigator.onLine,是一个属性,返回浏览器的联网状态.主要用于查看你是否连接上了互联网. 在正常联网的情况下会返回true,没有联网即离线的状态下返回false. 一旦浏览器的联网状态发 ...
- SessionListener与SessionAttributeListener统计用户在线问题
最近用户急要一个在线统计用户列表的模块,在网上搜了些例子,大部分都是用SessionListener统计在线人数的,无法得到具体访问的用户列表.尝试了一下用 HttpSessionAttributeL ...
- 利用 Redis Bitmap 统计用户在线次数
场景1:统计用户A在今年以来的上线次数 基础知识: setbit 用于设置某个key某个offset下面比特位的值,只能是0或1 bitcount 用于统计每个key中,比特位被标记为1的个数 如: ...
- 【django项目后台开发】数据统计——用户总数统计、日增用户数统计、日活跃用户统计(3)
一.用户总数统计 1.后端接⼝设计 请求⽅式: GET /statistics/total_count/ 请求参数: 通过请求头传递jwt token数据. 返回数据: JSON { "co ...
- 有事您Q我,qq在线离线状态
是腾讯的互动代码.是一种服务,免费的. 你可以到http://is.qq.com/webpresence/code.shtml腾讯互动状态代码按照提示生成你需要的代码.然后添加到网页代码或支持的博客中 ...
最新文章
- golang json 获取所有key_Golang —— JSON 大法
- 《学习opencv》笔记——矩阵和图像处理——cvMinManLoc,cvMul,cvNot,cvNorm and cvNormalize...
- java jar 和 war 包的区别
- Oracle的rownum原理和使用
- rtsp交互命令简介及过程参数描述
- 实现基于darknet框架实现CTPN版本自然场景文字检测 与CNN+CTCOCR文字识别的ChineseOCR搭建
- 外设驱动库开发笔记15:DHT11温湿度传感器驱动
- Java编程:树(实际应用)
- loj#6433. 「PKUSC2018」最大前缀和(状压dp)
- iOS中的armv6、armv7、armv7s含义详解
- PDF转CAD格式步骤再简单
- 【HTML】Html页面跳转的5种方式
- LLVM LLD PE 格式分析 (COFF)
- 把计算机网络关闭啦怎么打开,网络发现已关闭怎么办?Win7系统启用/关闭网络发现方法(图文)...
- 算法刷题【洛谷P1359】租用游艇(最短路径Floyd算法和Dijkstra算法模板题)
- 转载-高仙机器人落地北京杭州深圳多个城市地铁
- PCL安装与配置(Windows10+VS2017 )
- 北方工业大学计算机考研资料汇总
- 信息学奥赛 python 教程_Python在信息学竞赛中的运用及Python的基本用法(详解)
- MMX和SSE的运用
热门文章
- 操作系统:分享10个经常用的cmd命令
- 幽默:程序员背后的心酸日常,你懂多少?
- 程序员的二十句励志名言,看看你最喜欢哪句?
- C语言补丁原理,C语言可变长參数实现原理
- 事业单位考试题库计算机网络,2015年事业单位计算机基础知识试题及答案
- apache 配置文件内使用 8080 端口_【SpringBoot 框架】- SpringBoot 配置文件
- 进程相关概念、C程序的空间分配
- linxu其他用户登录mysql_Linux系统的MySQL用户如何开启远程登录权限
- Vue 3.2 发布了,那尤雨溪是怎么发布 Vue.js 的?
- 年度总结文章的抽奖结果公布