SurveyMonkey creating a collector in Powershell returning "The body provided was not a proper JSON string

68 Views Asked by At

I'm using Powershell to automate a survey creation, adding a collector, and sending the survey invitation - a pretty common use case. I was able to create a survey but I'm running into an issue in creating the collector. I created a collector via Postman but I get the error "1001 - The body provided was not a property JSON string" when using Powershell. I've tried everything I can think of but continue to get the error no matter how I create the JSON. Here is the code I'm using:

$SurveyCollector = [PSCustomObject]@{ type = 'email' } 

$BodyText = $SurveyCollector | Select-Object -Property type |ConvertTo-Json -Depth 100 -Compress 

$Results = Invoke-RestMethod -Uri $uri -StatusCodeVariable "ExtIDscv" -SkipHttpErrorChe -Method 
Post -ContentType "application/json" -Authentication Bearer -Token $SecureToken -body -$BodyText 

I'm sure I'm missing something simple. I'd appreciate any help.

1

There are 1 best solutions below

0
user2649221 On

The answer was more simple than what tripleee suggested. I had introduced a -$BodyText into the call and didn't catch it. I removed it and it works just fine.

$Results = Invoke-RestMethod -Uri $uri -StatusCodeVariable "ExtIDscv" -SkipHttpErrorChe -Method Post -ContentType "application/json" -Authentication Bearer -Token $SecureToken -body -$BodyText