nicolae-soitu/telegram-dump

这是一个 Laravel 包,可以将数据直接发送到 Telegram,对于希望通过在 Telegram 聊天中直接接收数据来实时监控和分析 Laravel 应用行为的开发生态来说,这是一个极其有用的工具。

v1.0.1 2024-03-04 20:15 UTC

This package is auto-updated.

Last update: 2024-09-04 21:23:51 UTC


README

该 Laravel 包可以将数据直接发送到 Telegram,对于希望通过在 Telegram 聊天中直接接收数据来实时监控和分析 Laravel 应用行为的开发生态来说,这是一个极其有用的工具。这个包在 Laravel 应用和 Telegram 之间建立了直接的联系,允许开发者在关键时刻或进行调试时快速有效地发送数据或应用状态的快照。

主要功能

  • 简单集成:可以轻松集成到现有的 Laravel 项目中,只需几行代码即可进行设置和初始化。
  • 灵活配置:提供广泛的配置选项,包括设置 Telegram 机器人的 token 和聊天 ID,以便将消息直接发送到指定的位置。
  • 安全:实现安全措施以确保数据安全发送,保护敏感数据。
  • 定制:允许定制发送到 Telegram 的消息,包括添加额外的调试相关信息。
  • 实时报告:非常适合实时应用监控,在特定事件或错误发生时,会立即将数据发送到 Telegram。
  • 支持格式化:支持消息格式化,以提高 Telegram 中快照的可读性,便于快速数据分析。

典型用途

开发人员可以使用这个包来发送关于未捕获的异常、验证错误或任何有助于监控应用状态并快速识别问题的相关信息。在生产环境中尤其有用,因为直接访问日志可能更加受限。

实现

实现该包需要配置 Telegram 机器人和获取 token,然后将它们用于在 Laravel 配置文件中设置包。配置完成后,开发人员可以在代码的任何地方调用函数发送数据,直接将所需信息发送到指定的 Telegram 聊天。

安装

您可以通过 composer 安装此包

composer require nicolae-soitu/telegram-dump

您可以将

php artisan vendor:publish --provider="NicolaeSoitu\TelegramDump\Providers\TelegramDumpServiceProvider"

创建机器人

要使用此包,您需要拥有或创建 Telegram 机器人

  • 打开 Telegram,访问 @BotFather
  • 输入 /newbot
  • 按照指示操作。
  • 将机器人推送至 /start

添加到 .env 文件

TELEGRAM_DUMP_TOKEN=...telegram token...
TELEGRAM_DUMP_CHAT_ID=...telegram chat id...

使用示例

use NicolaeSoitu/TelegramDump/TelegramDump;

//...
  $var = ['foo'=>'bar'];
  TelegramDump::send($var);

  // or with parameters

  TelegramDump::
  // optional user id or chat id
  to(120200000030203020)
  // optional type of notification
  // info ℹ️
  // warning ⚠️
  // ok ✅
  // delete ❌
  // or custom (any string/emoji)
  -> type('info')
  // Notification title
  -> title('Title')
  // Notification descriotion
  -> description('Short description')
  // send is required - any variable/object/string...
  -> send($var);

  try {
  // Code that may throw an Exception or Error.
  } catch (Throwable $t) {
    TelegramDump::send($t);
  } catch (Exception $e) {
    TelegramDump::send($e);
  }
// ...

要接收所有错误

在 App\Exceptions\Handler 中

#app/Exceptions/Handler.php
use NicolaeSoitu/TelegramDump/TelegramDump;
// add in reportable
//...
$this->reportable(function (Throwable $e) {
  TelegramDump::send($e); // add it here in reportable
});
//...

命令

php artisan telegram-dump:test
php artisan telegram-dump:getUpdate

总之,这个包代表了一种高效灵活的解决方案,用于监控和调试 Laravel 应用程序,提供了一种直接快速的方法将关键信息发送到 Telegram,有助于快速响应出现的问题。