Doplnit statistiky aktivit
zoul opened this issue · comments
Například počet napsaných zpráv? Vypadá to, že přímá podpora pro tohle v API není, je nutné to napočítat ručně.
Jak tomu aktuálně rozumím, nepraktické je, že pro ruční počítání aktivity (tedy například počtu zpráv v kanálech) bysme museli aplikaci volunteer_sync přidat do všech kanálů, aby k nim měla přístup.
Pro poslední aktivitu na Slacku vypadá dobře metoda team.accessLogs, jen je potřeba starší uživatelský token místo běžného botího. Zkoušel jsem, ale dostal jsem chybu missing_scope
, takže nízká oprávnění. Teď už jsem workspace admin, zkusím později znova.
OK, ty access logy jdou vyndat, vypadají například takhle:
{
"user_id": "UJJ3MNA91",
"username": "tomas.znamenacek",
"date_first": 1583487847,
"date_last": 1583487847,
"count": 1,
"ip": "213.235.140.67",
"user_agent": "ApiApp/AURC5123A tiny-http",
"isp": "CD-Telematika a.s.",
"country": "CZ",
"region": "78"
},
Akorát je k tomu potřeba uživatelský token s administrátorskými právy a těch záznamů je tam hodně, konkrétně 4347 stránek po 100 záznamech. A tahle metoda API je omezená na zhruba 20+ dotazů za minutu, plus nejde vyptat všecko:
It is not possible to request more than 1000 items per page or more than 100 pages.
Filtrování podle uživatele to neumí. Celkově mně to nepřijde příliš atraktivní cesta – kdybysme stahovali historii kanálů, bude jednodušší odvodit nedávnou aktivitu z těchto dat.
Kdybysme se chtěli vrátit k tomu poslednímu datu přihlášení, tak tady je proof of concept v Pythonu: https://github.com/frenzymadness/Slack-last-login.