当我的 Laravel 应用程序发生错误时,如何调用 Webhook?

问题描述 投票:0回答:1

我正在开发 Laravel 应用程序,并且希望在发生错误时通过 Webhook 收到通知。我想将错误详细信息(如错误消息、文件和行号)发送到指定的 Webhook URL。如何在我的 Laravel 应用程序中进行设置?

laravel
1个回答
0
投票

要在 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);
}
© www.soinside.com 2019 - 2024. All rights reserved.