Skip to content

Instantly share code, notes, and snippets.

@devStepsize
Last active August 7, 2023 09:28
Show Gist options
  • Save devStepsize/b1b795309a217d24566dcc0ad136f784 to your computer and use it in GitHub Desktop.
Save devStepsize/b1b795309a217d24566dcc0ad136f784 to your computer and use it in GitHub Desktop.
POST a JSON payload to a Slack Incoming Webhook using Python requests
'''
This is an example of how to send data to Slack webhooks in Python with the
requests module.
Detailed documentation of Slack Incoming Webhooks:
https://api.slack.com/incoming-webhooks
'''
import json
import requests
# Set the webhook_url to the one provided by Slack when you create the webhook at https://my.slack.com/services/new/incoming-webhook/
webhook_url = 'https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'
slack_data = {'text': "Sup! We're hacking shit together @HackSussex :spaghetti:"}
response = requests.post(
webhook_url, data=json.dumps(slack_data),
headers={'Content-Type': 'application/json'}
)
if response.status_code != 200:
raise ValueError(
'Request to slack returned an error %s, the response is:\n%s'
% (response.status_code, response.text)
)
@eugenyuk
Copy link

eugenyuk commented Aug 7, 2023

Hi, this is working example:

import requests

def send_slack_notif():

    url = 'YOUR_SLACK_WEBHOOK_URL'
    payload = {
        "blocks": [
            {
			    "type": "section",
			    "text": {
				    "type": "plain_text",
				    "text": ":red_circle: This is a plain text section block.",
				    "emoji": True
			    }
	}
        ]
    }
    r = requests.post(url, json=payload)
    
send_slack_notif()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment