我正在开发 Laravel 应用程序,并且希望在发生错误时通过 Webhook 收到通知。我想将错误详细信息(如错误消息、文件和行号)发送到指定的 Webhook URL。如何在我的 Laravel 应用程序中进行设置?
要在 Laravel 应用程序中发生错误时调用 Webhook,您可以扩展默认异常处理程序以包含将错误详细信息发送到 Webhook 的功能。具体方法如下:
创建一个将数据发送到 webhook 的方法:
创建一个将数据发送到指定 Webhook URL 的方法。您可以使用 Laravel 的 HTTP 客户端来实现此目的。
// In your app/Exceptions/Handler.php
public function report(Throwable $exception)
{
if ($this->shouldReport($exception)) {
$ch = curl_init();
$webhook_message = array('message'=> " exception : ".get_class($exception) ."<br><br> message :".$exception->getMessage()."<br><br> file : ".$exception->getFile() ." line :" . $exception->getLine()."<br>");
$url = "https://replacewebhook_url";
$headers = array('Content-Type: application/json',);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($webhook_message));
$result = curl_exec($ch);
if (curl_errno($ch)) {
$error_msg = curl_error($ch);
}
$result = json_decode($result, TRUE);
curl_close($ch); }
parent::report($exception);
}