如何使用 webhook 和 Python 向 slack 发送错误消息?

How to send error message to slack using webhook and Python?

我有几个 Python 函数。如果出现任何错误,我想将错误消息发送给 slack。为此,我在代码的 except 块中添加了以下行 -

    except Exception as ex:
     msg = 'There is a problem with csv generation due to: {}'.format(ex)
     logger.info(msg)
     send_message("web_hook_url",msg)

我的 send_message() 如下所示-

def send_message(webhook_url, message):
 response = requests.post(
     webhook_url, data=json.dumps(message),
     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)
     )

我看到了以下内容 link slack webhook post 但是我很困惑如何在我的 except 代码块中使用我的 send_message()?

谁能帮我实现这个目标?

您的有效载荷中必须有一个名为 "text" 的密钥。

def send_message(self, message):
    payload = {"text": message}
    try:
        return requests.post(self.url, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
    except requests.exceptions.RequestException as e:
        print e.message
        return False

关于如何使用它的问题,您可以像这样格式化您的消息:

{
    "message": ex.message

}

也看看这个工具Sentry

请求中的数据需要格式正确,所以..

logger.info(msg)
slackmsg = {"text": msg}
send_message(self, slackmsg)