Last active
August 26, 2020 14:53
-
-
Save poiriersimon/772067eafd0fd57d8fd38c7a80ccd428 to your computer and use it in GitHub Desktop.
Get Teams Channels Analytics to CSV file
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#This is a quick and dirty way to dump all the last 90 days analytics of a Team to a CSV file | |
#Requirement : | |
#-Install-module MicrosoftTeams | |
#-Get your bearer token and replace it in the variable | |
$UPN = "[email protected]" | |
$TeamDisplayName = "My Team To Analyse" | |
$bearer ="Bearer ESAsadmaisjdoasjdoaskdokasopdkasopdjaiopjdd very long bearer token" | |
########### | |
$headers = @{ | |
"Authorization" = $Bearer | |
"Content-Type" = "application/json" | |
} | |
Connect-MicrosoftTeams | |
$Groupid = (Get-Team -User $UPN |where{$_.displayname -eq $TeamDisplayName}).GroupID | |
$Channels = Get-TeamChannel -GroupId $GroupID | |
$ChannelsStats = @() | |
foreach($Channel in $Channels){ | |
$URL = "https://teams.microsoft.com/tas/prod/v2/teams/$($Groupid)/channels/$($Channel.Id)/summary-timeseries?metrics=all&timeperiod=last-ninety-days&includeTimeseries=postMessages,replyMessages,mentions,reactions,meetingsOrganized" | |
$Reply = Invoke-WebRequest -Method get -UseDefaultCredentials -Uri $URL -Headers $headers | |
$Data = ConvertFrom-Json $Reply.Content | |
$ChannelStat = New-Object PSObject | |
$ChannelStat | Add-Member NoteProperty -Name "Channel" -Value $Channel.DisplayName | |
$ChannelStat | Add-Member NoteProperty -Name "replyMessages" -Value $Data.channels.metrics.replyMessages.value | |
$ChannelStat | Add-Member NoteProperty -Name "LastreplyMessages" -Value $Data.channels.metrics.replyMessages.timeSeries | sort -Descending date | where {$_.value -gt 0} |select -First 1 | |
$ChannelStat | Add-Member NoteProperty -Name "postMessages" -Value $Data.channels.metrics.postMessages.value | |
$ChannelStat | Add-Member NoteProperty -Name "LastpostMessages" -Value $Data.channels.metrics.postMessages.timeSeries | sort -Descending date | where {$_.value -gt 0} |select -First 1 | |
$ChannelStat | Add-Member NoteProperty -Name "meetingsOrganized" -Value $Data.channels.metrics.meetingsOrganized.value | |
$ChannelStat | Add-Member NoteProperty -Name "LastmeetingsOrganized" -Value $Data.channels.metrics.meetingsOrganized.timeSeries | sort -Descending date | where {$_.value -gt 0} |select -First 1 | |
$ChannelStat | Add-Member NoteProperty -Name "activeUsers" -Value $Data.channels.metrics.activeUsers.value | |
$ChannelStat | Add-Member NoteProperty -Name "LastactiveUsers" -Value $Data.channels.metrics.activeUsers.timeSeries | sort -Descending date | where {$_.value -gt 0} |select -First 1 | |
$ChannelStat | Add-Member NoteProperty -Name "channelMessages" -Value $Data.channels.metrics.channelMessages.value | |
$ChannelStat | Add-Member NoteProperty -Name "LastchannelMessages" -Value $Data.channels.metrics.channelMessages.timeSeries | sort -Descending date | where {$_.value -gt 0} |select -First 1 | |
$ChannelStat | Add-Member NoteProperty -Name "reactions" -Value $Data.channels.metrics.reactions.value | |
$ChannelStat | Add-Member NoteProperty -Name "Lastreactions" -Value $Data.channels.metrics.reactions.timeSeries | sort -Descending date | where {$_.value -gt 0} |select -First 1 | |
$ChannelStat | Add-Member NoteProperty -Name "mentions" -Value $Data.channels.metrics.mentions.value | |
$ChannelStat | Add-Member NoteProperty -Name "Lastmentions" -Value $Data.channels.metrics.mentions.timeSeries | sort -Descending date | where {$_.value -gt 0} |select -First 1 | |
$ChannelsStats += $ChannelStat | |
} | |
$ChannelsStats | Export-csv .\"$($TeamDisplayName)-Analytics-$(Get-date -Format yyyy-MM-dd).csv" -NoTypeInformation |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment