Slack Webhook returning invalid_payload - json

I am working with a software to post a message onto a slack channel. I have used curl command:
curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' https://hooks.slack.com
and it works without any issues.
On the platform I've put in post, the webhook url, a valid json text and the content-type. Not sure what else there is to do.
{
"text" : "Hello World!"
}
Image of Platform

Related

How can I fix this cURL PUT request to the Canvas API to bulk update course settings

In this cURL request I am attempting to do a bulk update to course settings to change the visibility to public. I'm a canvas admin and have the correct access token/url in my working script. The response I receive is "must specify course_ids[]" I have double checked to make sure I'm using accurate course ids. The canvas API documentation has been helpful but I cannot seem to correct it.
curl https://myschool.instructure.com/api/v1/accounts/1/courses -X PUT
-H "Authorization: Bearer token"
-H "Content-Type: application/json"
-d '{
"course_ids[]": [7504, 7505, 7506,...],
"course": {
"is_public": true
}
}'

base64 conversion in context with curl

I would like to send a message and attachment via signal-cli.
I successfully set up docker a container by bbernhard/signal-cli-rest-api.
Normal message sending with curl-statement works fine and statement looks like:
curl -X POST -H "Content-Type: application/json" -d '{\"message\": \"Hello World!\", \"number\": \"+490000000\", \"recipients\": [\"+4900000000"]}' 'http://localhost:48080/v2/send'
The message will be sent to one recipient or many. Also working for a group by groupID.
Question: How to add an attachment like a JPG?
If I add \"base64_attachments\": [\"${ENCODED_IMAGE}")\"] to the statement, then i get the error message {"error":"Couldn't process request - invalid request"}
Full bash script looks like :
#!/bin/bash
INPUT_FILE="/path/to/file/IMG_5098.JPG"
TMPFILE=$(mktemp)
base64 "${INPUT_FILE}" --wrap=0 > "${TMPFILE}"
ENCODED_IMAGE=$(cat "${TMPFILE}")
curl -X POST -H "Content-Type: application/json" -d '{\"message\": \"Hello World!\", \"base64_attachments\": [\"${ENCODED_IMAGE}")\"], \"number\": \"+4900000\", \"recipients\": [\"+4900000000\"]}' 'http://localhost:48080/v2/send'
rm "${TMPFILE}"
I expected the image send as well as the message

Sending POST Request from bash script

I want to execute a bash script after i make a POST request.So far i am using Postman for sending the request , but i was wondering if i can somehow do it from a bash script as well with a json file as parameter.
I have looked into curl so far but it does not work:
bash file
curl -X POST -d req.json http://localhost:9500
Json file (req.json)
{
"id":5,
"name":"Dan",
"age":33,
"cnp":33,
"children":100,
"isMarried":0
}
I just get the error :
HTTP/1.0 503 Service Unavailable
with the trailing HTML
curl should do the job. This will send a normal POST request using the data in req.json as the body:
curl -X POST -H "Content-Type: application/json" -d #req.json http://localhost:9500
The elements you were missing are -H "Content-Type: application/json" and the # in the data flag. Without the -H flag as above curl will send a content type of application/x-www-form-urlencoded, which most applications won't accept if they expect JSON. The # in the -d flag informs curl that you are passing a file name; otherwise it uses the text itself (i.e. "req.json") as the data.

How can I send a message to the github API with curl?

I am trying to modify the label color like this: LABEL API
curl -k -u "xx:yy" https://api.github.com/repos/xx/zz/labels -H "Content-Type: application/x-www-form-urlencoded" -d "{'name':'Bug','color':'ff00ff'}"
The format looks okay to me but it returns:
{
"message": "Problems parsing JSON"
}
Does anyone have any idea what might be wrong with my Json.
You should be using Content-Type: application/json.

Create new gist with Github API v3 using curl

After fighting for quite some time for posting a private gist to Github using their API V3 I almost gave up. Almost. May be some one have also faced similar problem or know what might be the reasoning of the following behavior:
Right now the curl command looks like following:
curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"public":false,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists
I also tried
curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" -X POST -d '{"public":false,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists
I am able to create gist without authorization token using exactly same data:
curl -X POST -d '{"public":true,"files":{"test.txt":{"content":"String file contents"}}}' https://api.github.com/gists
But in that case it will be anonymous
Same results if I am truing to post it as public
In any case Github returns me
HTTP/1.1 404 Not Found
{
"message": "Not Found"
}
I am pretty sure I am authorized, as curl -H "Authorization: bearer MY_AUTHORIZATION_TOKE" https://api.github.com/user returns me my user details.
Application scope is as:
https://github.com/login/oauth/authorize?client_id=...&scope=gist
So, it should have both read and write permission.
Your OAuth2 token doesn't appear to have the required gist scope.
If you run the curl commands with the -v argument you can see the scope sent to request (X-OAuth-Scopes header) and the scope required for the request (X-Accepted-OAuth-Scopes header) to successfully be performed using the token sent.
If you don't see gist listed in the X-OAuth-Scopes header value then that is your problem.