I'm getting an error when creating normal “end-user” and I'm sure we've enough license. Below is my code and the error-
function aZUser {param([hashtable]$zUser)
## Input format - admin operator email, admin operator token, user F.Name L.Name, user email, user role
Write-Host $zUser.Count
$qparams = $null
foreach ($myKey in $zUser.Keys)
{
switch ($myKey)
{
"AOEmail"
{
$OEmail = $zUser[$myKey]
break
}
"AOToken"
{
$OToken = $zUser[$myKey]
break
}
"UName"
{
$UName1 = $zUser[$myKey]
break
}
"UEmail"
{
$UEmail1 = $zUser[$myKey]
break
}
"URole"
{
$URole1 = $zUser[$myKey]
break
}
}
}
$Username = $OEmail + "/token"
$Token = $OToken
$Base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes("$($Username):$($Token)"))
Remove-Variable -name user -ErrorAction SilentlyContinue
Remove-Variable -Name huser -ErrorAction SilentlyContinue
New-Variable -Name user -Value @{}
New-Variable -Name huser -Value @{}
$user.Add("Name",$UName1)
$user.Add("Email",$UEmail1)
$user.Add("Role",$URole1)
$huser.Add("user",$user)
## '{"user": {"name": "Roger Wilco", "email": "roge1@example.org", "role" : "end-user"}}'
$bData = @($huser) | ConvertTo-Json
## $bdata = "'" + $bData + "'"
## $bData = @($bData) | ConvertTo-Json
## $bData = @($bData) | ConvertFrom-Json
##- $bData = @($bData) | ConvertTo-Json
Write-Host $bData
$qparams1 = @{Uri='https://mysubdomain.zendesk.com/api/v2/users/request_create.json';
Method='POST';
Headers=@{Authorization="Basic $Base64AuthInfo"};
Body = $bData
ContentType='application/json'}
invoke-restmethod @qparams1
}
Remove-Variable -name myZParams -ErrorAction SilentlyContinue
New-Variable -Name myZParams -Value @{}
$myZParams.Add("AOEmail","abc.bcd@googlx.com")
$myZParams.add("AOToken","xxxxTOKEN***")
$myZParams.add("UName","Roger Wilco")
$myZParams.add("UEmail","rogerw2@example.org")
$myZParams.add("URole","end-user")
aZUser($myZParams)
<#
Returns this error-
[DBG]: PS C:\WINDOWS\system32>>
{
"user": {
"Email": "rogerw2@example.org",
"Name": "Roger Wilco",
"Role": "end-user"
}
}
[DBG]: PS C:\WINDOWS\system32>>
[DBG]: PS C:\WINDOWS\system32>>
invoke-restmethod : {"error":"ParameterMissing","description":"Parameter low_seat_count_notification OR user[email]+user[name]+user[role] is
required"}
At C:\Users\xxx\Documents\WindowsPowerShell\Scripts\AddZDeskUser.ps1:73 char:5
+ invoke-restmethod @qparams1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
#>