@ctaylor, you were so close! I made it work with a couple small tweaks. Here's my code that works.
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.triggercmd.com/api/run/triggerSave");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"computer":"DS","trigger":"calculator"}');
curl_setopt($ch, CURLOPT_POST, 1);
$headers = array();
$headers[] = "Authorization: Bearer (token from instructions page)";
$headers[] = "Content-Type: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);
?>
You'll see that I changed this line to use single quotes around the json object.
curl_setopt($ch, CURLOPT_POSTFIELDS, '{"computer":"DS","trigger":"calculator"}');
And I changed this line to use application/json instead of application/x-www-form-urlencoded because you're passing a json object.
$headers[] = "Content-Type: application/json";
In case you're curious, this is how I tested my test.php script:
docker run -it --rm --name test-script -v d:\appdev\php:/myscript -w /myscript php:7.0-cli php test.php
BTW, I'm curious what your application is.