Public/Webinars/Get-ZoomWebinarsFromUser.ps1
<# .SYNOPSIS Use this API to list all the webinars that are scheduled by or on-behalf a user (Webinar host). .DESCRIPTION Zoom users with a webinar plan have access to creating and managing Webinars. Webinar allows a host to broadcast a Zoom meeting to up to 10,000 attendees. Use this API to list all the webinars that are scheduled by or on-behalf a user (Webinar host). .PARAMETER UserId The user ID or email address of the user. For user-level apps, pass `me` as the value for userId. .PARAMETER Pagesize The number of records returned within a single API call. .PARAMETER PageNumber The current page number of returned records. .OUTPUTS Zoom API response. .LINK .EXAMPLE Get-ZoomWebinarsFromUser lskywalker@thejedi.com .EXAMPLE Export to CSV the participants from all webinars of a particular name from a given user. Does not take into account webinars with over 300 participants. $Ids = ((Get-ZoomWebinarsFromUser myoda@thejedi.com -PageSize 300).webinars | where-object topic -eq 'Training').id $Ids | foreach-object { (Get-ZoomWebinarParticipantsReport $_ -PageSize 300).participants } | Export-Csv techtalkparticipants.csv #> function Get-ZoomWebinarsFromUser { [CmdletBinding()] param ( [Parameter( Mandatory = $True, ValueFromPipeline = $True, ValueFromPipelineByPropertyName = $True, Position = 0 )] [Alias('user_id', 'user')] [string[]]$UserId, [ValidateRange(1,300)] [int]$PageSize = 30, [ValidateRange(1,300)] [int]$PageNumber = 1 ) process { foreach ($id in $UserId) { $request = [System.UriBuilder]"https://api.$ZoomURI/v2/users/$id/webinars" $query = [System.Web.HttpUtility]::ParseQueryString([String]::Empty) $query.Add('page_size', $PageSize) $query.Add('page_number', $PageNumber) $request.Query = $query.toString() $request.Query = $query.toString() $response = Invoke-ZoomRestMethod -Uri $request.Uri -Body $RequestBody -Method GET Write-Output $response } } } |