You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何用Python结合Slack消息格式通过Discord Webhook向Slack发送多URL列表

解决Discord Webhook发送多URL的Slack格式消息问题

嘿,我明白你现在的需求——要通过Python用Discord Webhook发送多个URL,而且用Slack的消息格式对吧?其实核心很简单:每个URL对应一个attachment对象,把所有这些对象放到attachments列表里就行

我给你写个完整的示例,你可以直接套用:

import requests
from urllib.parse import urlparse

# 你的Discord Webhook地址
WEBHOOK_URL = "你的Webhook链接"

# 你要发送的URL列表
urls = [
    "https://www.google.se",
    "https://stackoverflow.com",
    "https://github.com"
]

# 构建多个附件,每个URL对应一个附件
attachments = []
for url in urls:
    # 解析URL的域名,让消息更友好(可选,你也可以直接用完整URL)
    parsed_url = urlparse(url)
    domain_name = parsed_url.netloc if parsed_url.netloc else parsed_url.path.split('/')[0]
    
    # 为当前URL创建一个attachment字典
    attachment = {
        "author_name": domain_name,
        "color": "#00ff00",
        "text": "*Press the link above!*",
        "title": domain_name,
        "title_link": url
    }
    attachments.append(attachment)

# 构造完整的payload
payload = {
    "username": "Link Sender Bot",
    "attachments": attachments
}

# 发送请求到Discord Webhook
try:
    response = requests.post(WEBHOOK_URL, json=payload)
    response.raise_for_status()  # 如果请求失败会抛出异常
    print("消息发送成功!")
except requests.exceptions.RequestException as e:
    print(f"发送失败: {e}")

关键说明:

  • 循环遍历你的URL列表,为每个URL生成独立的attachment字典,然后把它们全部加入attachments列表。
  • title_link字段就是你要跳转的URL,title是显示的文本(这里用了域名,你也可以改成自定义文本)。
  • 如果你不需要解析域名,直接把title设为url也完全没问题,能简化代码。
  • Discord完全支持这种多附件的Slack格式payload,发送后每个URL会以独立的卡片形式展示在消息里。

这样改完之后,你就能一次性发送所有URL啦!

内容的提问来源于stack exchange,提问作者CDNthe2nd

火山引擎 最新活动