You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python脚本调用Slack Incoming Webhook发消息:无报错但未成功

问题排查与修复方案

核心问题1:函数未执行

你的脚本只定义了main和send_slack_message函数,但从头到尾没有调用过这些函数——代码仅获取了name变量就结束了,自然不会触发任何发送请求的逻辑。

核心问题2:函数参数逻辑混乱

send_slack_message函数接收了message参数,但内部完全没用到,反而使用全局的name变量。而且直接用字符串拼接生成JSON,一旦name包含引号、换行等特殊字符,会直接破坏JSON格式,导致Slack拒绝处理。

核心问题3:请求格式不规范

给Slack Webhook发JSON数据时,需要设置Content-Type: application/json请求头,或者直接用requests的json参数自动处理格式和请求头,否则Slack无法正确解析你的请求。


修复后的完整代码

import requests  # 建议把模块导入放在文件顶部,不要嵌套在函数内

def send_slack_message(message: str):
    # 用json参数传字典,requests会自动完成JSON序列化并设置正确请求头
    response = requests.post(
        'https://hooks.slack.com/services/*****************',
        json={"text": message}
    )
    print(response.text)
    # 打印状态码方便排查问题
    print(f"请求状态码: {response.status_code}")

def main():
    name = input("What is your name? ")
    send_slack_message(message=f"Hello, {name}!")  # 构造要发送的消息内容

# 必须调用main函数才会执行整个逻辑
if __name__ == "__main__":
    main()

额外排查点

  • 确认你的Webhook URL完全正确,没有打错字符或泄露后失效
  • 如果仍然失败,查看response.text里的具体错误信息,Slack会返回明确的失败原因(比如无效Webhook、格式错误等)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:45:30