I've made a few successful API calls using the same integration key (Get Alerts, Update Description, Add Tag), but while trying to CLOSE ALERT, I get "The remote server returned an error: (400) Bad Request"
Any idea what I could be missing here?
<SNIP>
PS C:\> $closeAlertURL
https://api.opsgenie.com/v2/alerts/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxxxxxxxxx/close
PS C:\> Invoke-RestMethod -Method POST -Uri $closeAlertURL -Headers $global:OpsGenieAPIHeader
Invoke-RestMethod : The remote server returned an error: (400) Bad Request.
At line:1 char:1
+ Invoke-RestMethod -Method POST -Uri $closeAlertURL -Headers $global:O ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
<SNIP>
I figured out the problem.
Even though I'm not using any of the OPTIONAL fields in the JSON body, I MUST have an empty JSON body passed with the request.
Here's what worked for me:
<SNIP>
PS C:\Windows\System32> $closeAlertURL
https://api.opsgenie.com/v2/alerts/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-xxxxxxxxxxxxx/close
PS C:\> $post_message = @{}
$post_message_JSON = $post_message | ConvertTo-Json
PS C:\> Invoke-RestMethod -Method POST -Uri $closeAlertURL -Headers $global:OpsGenieAPIHeader -Body $post_message_JSON
</SNIP>
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.