The testSlackPostMessageAction() GraphQL
mutation is used to test a post message Slack action.
Below is the syntax for the
testSlackPostMessageAction() mutation
field:
testSlackPostMessageAction(
input : TestPostMessageSlackAction!
) : TestResult!
Below is an example of how this mutation field might be used:
Show:
Raw Mac OS or Linux (curl) Mac OS or Linux (curl) One-line Windows Cmd and curl Windows Powershell and curl Perl Python Node.js
Raw mutation {
testSlackPostMessageAction( input :
{ viewName : "humio" ,
name : "act-up" ,
apiToken : "abc123" ,
channels : [ "#admin" ] ,
fields : [ { fieldName : "msg" , value : "hey!" } ] ,
useProxy : false ,
triggerName : "wake-up" ,
eventData : "[{\"#type\":\"kv\"}]" ,
} )
{ success }
}
Mac OS or Linux (curl) curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @- << EOF
{"query" : "mutation {
testSlackPostMessageAction( input:
{ viewName: \"humio\",
name: \"act-up\",
apiToken: \"abc123\",
channels: [ \"#admin\" ],
fields: [ { fieldName: \"msg\", value: \"hey!\" } ],
useProxy: false,
triggerName: \"wake-up\",
eventData: \"[{\\"#type\\":\\"kv\\"}]\",
} )
{ success }
}"
}
EOF
Mac OS or Linux (curl) One-line curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d @- << EOF
{"query" : "mutation {
testSlackPostMessageAction( input:
{ viewName: \"humio\",
name: \"act-up\",
apiToken: \"abc123\",
channels: [ \"#admin\" ],
fields: [ { fieldName: \"msg\", value: \"hey!\" } ],
useProxy: false,
triggerName: \"wake-up\",
eventData: \"[{\\"#type\\":\\"kv\\"}]\",
} )
{ success }
}"
}
EOF
Windows Cmd and curl curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
-H "Authorization: Bearer $TOKEN" ^
-H "Content-Type: application/json" ^
-d @'{"query" : "mutation { ^
testSlackPostMessageAction( input: ^
{ viewName: \"humio\", ^
name: \"act-up\", ^
apiToken: \"abc123\", ^
channels: [ \"#admin\" ], ^
fields: [ { fieldName: \"msg\", value: \"hey!\" } ], ^
useProxy: false, ^
triggerName: \"wake-up\", ^
eventData: \"[{\\"#type\\":\\"kv\\"}]\", ^
} ) ^
{ success } ^
}" ^
} '
Windows Powershell and curl curl.exe -X POST
-H "Authorization: Bearer $TOKEN "
-H "Content-Type: application/json"
-d '{"query" : "mutation {
testSlackPostMessageAction( input:
{ viewName: \"humio\",
name: \"act-up\",
apiToken: \"abc123\",
channels: [ \"#admin\" ],
fields: [ { fieldName: \"msg\", value: \"hey!\" } ],
useProxy: false,
triggerName: \"wake-up\",
eventData: \"[{\\"#type\\":\\"kv\\"}]\",
} )
{ success }
}"
}'
"$YOUR_LOGSCALE_URL /graphql"
Perl
use HTTP::Request;
use LWP;
my $INGEST_TOKEN = "TOKEN" ;
my $uri = '$YOUR_LOGSCALE_URL/graphql' ;
my $json = '{"query" : "mutation {
testSlackPostMessageAction( input:
{ viewName: \"humio\",
name: \"act-up\",
apiToken: \"abc123\",
channels: [ \"#admin\" ],
fields: [ { fieldName: \"msg\", value: \"hey!\" } ],
useProxy: false,
triggerName: \"wake-up\",
eventData: \"[{\\"#type\\":\\"kv\\"}]\",
} )
{ success }
}"
}' ;
my $req = HTTP::Request->new("POST" , $uri );
$req->header("Authorization" => "Bearer $TOKEN" );
$req->header("Content-Type" => "application/json" );
$req->content( $json );
my $lwp = LWP::UserAgent->new;
my $result = $lwp->request( $req );
print $result->{"_content" },"\n" ;
Python
import requests
url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
testSlackPostMessageAction( input:
{ viewName: \"humio\",
name: \"act-up\",
apiToken: \"abc123\",
channels: [ \"#admin\" ],
fields: [ { fieldName: \"msg\", value: \"hey!\" } ],
useProxy: false,
triggerName: \"wake-up\",
eventData: \"[{\\"#type\\":\\"kv\\"}]\",
} )
{ success }
}"
}'''
resp = requests.post(url,
data = mydata,
headers = {
"Authorization" : "Bearer $TOKEN" ,
"Content-Type" : "application/json"
}
)
print (resp.text)
Node.js const https = require ('https' );
const data = JSON .stringify (
{"query" : "mutation {
testSlackPostMessageAction( input:
{ viewName: \"humio\",
name: \"act-up\",
apiToken: \"abc123\",
channels: [ \"#admin\" ],
fields: [ { fieldName: \"msg\", value: \"hey!\" } ],
useProxy: false,
triggerName: \"wake-up\",
eventData: \"[{\\" #type\\":\\" kv\\"}]\",
} )
{ success }
}"
}
);
const options = {
hostname : '$YOUR_LOGSCALE_URL/graphql' ,
path : '/graphql' ,
port : 443 ,
method : 'POST' ,
headers : {
'Content-Type' : 'application/json' ,
'Content-Length' : data.length ,
Authorization : 'BEARER ' + process.env .TOKEN ,
'User-Agent' : 'Node' ,
},
};
const req = https.request (options, (res ) => {
let data = '' ;
console .log (`statusCode: ${res.statusCode} ` );
res.on ('data' , (d ) => {
data += d;
});
res.on ('end' , () => {
console .log (JSON .parse (data).data );
});
});
req.on ('error' , (error ) => {
console .error (error);
});
req.write (data);
req.end ();
Example Responses Show:
Success (HTTP Response Code 200 OK)
Success (HTTP Response Code 200 OK) {
"data" : {
"testSlackPostMessageAction" : {
"success" : false
}
}
}
For
TestPostMessageSlackAction ,
there are a few parameters. Below is a list of them along with a
description of each:
Table: TestPostMessageSlackAction
Parameter Type Required Default Stability Description Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column. Table last updated: Sep 20, 2024 apiToken
string yes The API token to authenticate with Slack." channels
[string] yes A list of Slack channels to message. eventData
string yes JSON data representing one or more events. One event can be supplied as a JSON object. Multiple events must be supplied as a list of JSON objects. fields
[SlackFieldEntryInput
] yes Fields to include within the Slack message. Can be templated with values from the result. See SlackFieldEntryInput
. name
string yes The name of the action. triggerName
string yes The name of the action. This is a mock value; the trigger doesn't have to exist. useProxy
boolean yes Defines whether the action should use the configured proxy to make web requests. viewName
string yes The name of the view of the action.
The returned datatype,
TestResult has two
parameters. They're listed in the table below with descriptions of
each:
Table: TestResult
Parameter Type Required Default Stability Description Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column. Table last updated: Oct 3, 2024 message
string yes Long-Term
A message explaining the test result. success
boolean yes Long-Term
True if the test was a success, false otherwise.