Let me start off by saying I am not a developer. This script was created by a colleague of mine and currently uses password-authentication.
I have followed the RC guide on how to create a JWT token and I have that but I am having issues getting it to work.
Is there a guide that specifically shows how to use a JWT token with my powershell script out there?
Below is my current script, how would I modify it to use my new JWT token I generated on my RC account? Thanks for any help! Note: I sanitized the code to remove any personal infomation.
function Get-Token { #Get New Token# $tokenheaders = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $tokenheaders.Add("Authorization", 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==') $tokenheaders.Add("Content-Type", 'application/x-www-form-urlencoded') $body = 'grant_type=password&username=+19999999990&extension=101&password=XXXXXXXXXXXXXXXXXXXXX^' [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12 $T = Invoke-RestMethod "https://platform.ringcentral.com/restapi/oauth/token" -Headers $tokenheaders -Body $body -Method Post $Token = $t.access_token return $Token } $Token = Get-Token ############################################## #API GET Request Header $headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]" $headers.Add("Authorization", "Bearer $Token") $headers.Add("Accept", 'application/json') $headers.Add("content-type", 'application/json') #Get Users $AllUsers = Invoke-RestMethod 'https://platform.ringcentral.com/restapi/v1.0/account/~/extension/?perPage=1000' -Headers $headers -Method Get $UsersArray = @() foreach ($id in $AllUsers.records) { $userinfo = $null $department = $null $jobtitle = $null $emailCheck = $null $email = $id.contact.email $userinfo = Get-ADUser -Filter "UserPrincipalName -eq '$email'" -properties department, title $emailCheck = $userinfo.UserPrincipalName if($emailcheck -ne $null -and $id.type -ne "Department") { $department = $userinfo.department $jobtitle = $userinfo.title $UsersArray += (,($id.id, $id.contact.email, $department, $jobtitle)) } #$UsersArray = (,($id.id, "USER@DOMAIN.COM", "Technology", "Mutliple Word Job Title")) } foreach ($user in $UsersArray) { $did = $user[0] echo $user[1] #echo $user[3] #echo $user[2] $putbody = '{"contact": {"jobTitle":"' + $user[3] + '"}}' Invoke-RestMethod "https://platform.ringcentral.com/restapi/v1.0/account/~/extension/$did" -Headers $headers -Method PUT -Body $putbody $putdepartment = '{"contact": {"department":"' + $user[2] + '"}}' Invoke-RestMethod "https://platform.ringcentral.com/restapi/v1.0/account/~/extension/$did" -Headers $headers -Method PUT -Body $putdepartment Start-Sleep -Seconds 3 $did = $null }