-
Star
(125)
You must be signed in to star a gist -
Fork
(21)
You must be signed in to fork a gist
-
-
Save Bilka2/5dd2ca2b6e9f3573e0c2defe5d3031b2 to your computer and use it in GitHub Desktop.
| import requests # dependency | |
| url = "<your url>" # webhook url, from here: https://i.imgur.com/f9XnAew.png | |
| # for all params, see https://discordapp.com/developers/docs/resources/webhook#execute-webhook | |
| data = { | |
| "content" : "message content", | |
| "username" : "custom username" | |
| } | |
| # leave this out if you dont want an embed | |
| # for all params, see https://discordapp.com/developers/docs/resources/channel#embed-object | |
| data["embeds"] = [ | |
| { | |
| "description" : "text in embed", | |
| "title" : "embed title" | |
| } | |
| ] | |
| result = requests.post(url, json = data) | |
| try: | |
| result.raise_for_status() | |
| except requests.exceptions.HTTPError as err: | |
| print(err) | |
| else: | |
| print(f"Payload delivered successfully, code {result.status_code}.") | |
| # result: https://i.imgur.com/DRqXQzA.png |
@andyias you can use markdown links in the webhook content
[the link](https://example.com)
this is something unique to webhooks, and won't work for normal discord messages.
@Senoel i recommend taking a look at https://leovoel.github.io/embed-visualizer/ (make sure to click on "webhook mode")
you can also take a look at https://birdie0.github.io/discord-webhooks-guide/structure/file.html for sending files without an embed
very useful
very useful, since im a noob with python :D
Neat, thanks!
how would one attach a file?
do we just use .read() for the contents? and where does the file name go?
how would one attach a file? do we just use .read() for the contents? and where does the file name go?
@Hypurrnating I think you can use this:
requests.post("<your webhook url>", json = {"content": "<your message here (you can just set to an empty string)>"}, files = {"myfile": open("<your file path here>", "rb")})
Note that you can change myfile to anything other, and so, add multiple items into the dictionnary passed to files by changing the name.
To attach an image alongside message text, it's important to name the json data "payload_json" and the image attachment "files[0]", otherwise you will get a 400 error.
import json
import requests
url = "<webhook url>"
img = "/path/to/image.png"
filename = "image.png"
# for all params, see https://discordapp.com/developers/docs/resources/webhook#execute-webhook
# for embeds: https://discord.com/developers/docs/resources/message#embed-object
# for attachments: https://discord.com/developers/docs/reference#uploading-files
data = {
"username": "custom username",
"content": "message content",
# leave this out if you don't want an embed
# (the image will still be attached either way)
"embeds": [
{
"title": "embed title",
"description": "embed text",
"image": {
"url": f"attachment://{filename}"
}
}
],
"attachments": [
{
"id": "0",
"filename": filename
}
]
}
files = {
"payload_json": (None, json.dumps(data)),
"files[0]": open(img, 'rb')
}
result = requests.post(url, files=files)
try:
result.raise_for_status()
except requests.exceptions.HTTPError as err:
print(err)
else:
print(f"Payload delivered successfully, code {result.status_code}.")Doing it this way also allows you to edit the message with requests.patch() without duplicating your attachments.
Hey guys, is there a way to send texts that are actually links?
like in html e.g(Text)
I am trying to send shoe sizes as a message to my chanel, and I want to be able to click on those sizes and itll take me to the respective page of each size