Teams数据统计 - 用户在线离线状态
前幾天我在wechat的moments里看到以為朋友發(fā)了騰迅會議的對用戶個(gè)人的年度數(shù)據(jù)統(tǒng)計(jì),看上去很有大數(shù)據(jù)感。
??
?
?
?
實(shí)際上 Teams 也具備的類似的能力,只是它把這個(gè)能力開放給了開發(fā)人員,我們可以通過強(qiáng)大的 Graph API,獲取大量的數(shù)據(jù)信息(當(dāng)然,為了保證數(shù)據(jù)安全,你的app必須獲得 tenant 管理員的同意)。
我接下來的幾篇文章就集中介紹一下如何獲取這些信息,有興趣的開發(fā)者可以輕松使用這些 api 來提供用戶的數(shù)據(jù)統(tǒng)計(jì)功能。
我們這篇文章先來介紹一下用戶在線離線狀態(tài) presence。
獲取某一個(gè)用戶的狀態(tài)
GET /users/{id}/presence獲取多個(gè)用戶的狀態(tài)
POST /communications/getPresencesByUserIdRequest body: {"ids": ["fa8bf3dc-eca7-46b7-bad1-db199b62afc3", "66825e03-7ef5-42da-9069-724602c31f6b", ... ] }這兩個(gè) api 都需要一個(gè)權(quán)限?Presence.Read.All。下面是api的返回內(nèi)容:
{"value": [{"id": "fa8bf3dc-eca7-46b7-bad1-db199b62afc3","availability": "Busy","activity": "InAMeeting"},{"id": "66825e03-7ef5-42da-9069-724602c31f6b","availability": "Away","activity": "Away"}] }可以看到 teams 把用戶的狀態(tài)做的很細(xì),有兩個(gè)字段?availability?和?activity。
- availability?可能的值有:Available, AvailableIdle, Away, BeRightBack, Busy, BusyIdle, DoNotDisturb, Offline, PresenceUnknown
- activity?可能的值有:Available, Away, BeRightBack, Busy, DoNotDisturb, InACall, InAConferenceCall, Inactive, InAMeeting, Offline, OffWork, OutOfOffice, PresenceUnknown, Presenting, UrgentInterruptionsOnly
這么多值,分別代表什么意思呢?在Teams里這些狀態(tài)如下表:
| Available | Available | |
| Available, Out of Office. (當(dāng)用戶設(shè)置了自動回復(fù)功能,Teams就會設(shè)置成Out of office狀態(tài)) | ||
| Busy | Busy | |
| In a call | ||
| In a meeting | ||
| On a call, out of office | ||
| Do not disturb | ||
| Presenting | ||
| Focusing. 當(dāng)用戶在我們的日歷里設(shè)置了focus時(shí)間,Teams 就會顯示這個(gè)狀態(tài) | ||
| Away | Away | |
| Away Last Seen?time | ||
| Be right back | ||
| Appear offline | Offline. 當(dāng)用戶沒有在任何設(shè)備登入,幾分鐘后就會顯示這個(gè)狀態(tài) | |
| Status unknown | ||
| Out of Office | ||
知道了這些,各位是不是已經(jīng)在心里有這個(gè)統(tǒng)計(jì) app 的想法了?比如可以弄一個(gè) Azure Function,并且使用 timer trigger,每隔幾分鐘或者幾小時(shí),就調(diào)用上面的 api,來獲取公司里用戶的狀態(tài),然后保存到數(shù)據(jù)庫中,后面的統(tǒng)計(jì)就可以從數(shù)據(jù)庫里 query 了,當(dāng)然為了統(tǒng)計(jì)的效率,可能需要對數(shù)據(jù)存儲做一些優(yōu)化,比如某個(gè)用戶的狀態(tài)如果沒有變化,就不重復(fù)記錄。統(tǒng)計(jì)時(shí)也可能需要一些復(fù)雜的 sql 語句。不過一旦你有了用戶在線離線的數(shù)據(jù),統(tǒng)計(jì)則是水到渠成的事情了。
總結(jié)
以上是生活随笔為你收集整理的Teams数据统计 - 用户在线离线状态的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工智能微信讨论群
- 下一篇: 程序设计我爱你_如何用爱设计