Powershell- problem with request_creates.json | Community
Skip to main content

Powershell- problem with request_creates.json

  • May 30, 2024
  • 0 replies
  • 0 views

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

#>