aglipanci/telegrambot

此包最新版本(dev-main)没有可用的许可信息。

dev-main 2021-09-17 21:13 UTC

This package is auto-updated.

Last update: 2024-09-18 03:39:45 UTC


README

本包是 Laravel 对官方 Telegram Bot API 的简单包装。

安装

composer require aglipanci/telegrambot

配置

环境变量

为了使 Telegram Bot 正常工作,您需要将以下值添加到您的 .env 文件中

TELEGRAMBOT_API_KEY=api-key-here
TELEGRAMBOT_USERNAME=bot-username-here
TELEGRAMBOT_WEBHOOK_URL=webhook-url-here

配置

要发布包配置文件,执行以下 artisan 命令

php artisan vendor:publish --provider="AgliPanci\TelegramBot\TelegramBotServiceProvider"

来自 Longman\TelegramBot\Telegram 的主要 Telegram 类将作为 facade 通过 AgliPanci\TelegramBot\Facades\Telegram 提供,并且所有原始方法都可以从任何地方静态调用。例如

use \AgliPanci\TelegramBot\Facades\Telegram;
use Longman\TelegramBot\Entities\Update;
use Longman\TelegramBot\Telegram as TelegramBot

Telegram::setUpdateFilter(function (Update $update, TelegramBot $telegram, &$reason = 'Update denied by update_filter') {
    $user_id = $update->getMessage()->getFrom()->getId();
    if ($user_id === 428) {
        return true;
    }

    $reason = "Invalid user with ID {$user_id}";
    return false;
});

Webhook 路由

在您的 web.php 或 api.php 中添加以下行

Route::telegrambot('telegram');

如果您使用包路由和控制器,您不需要设置 TELEGRAMBOT_WEBHOOK_URL

设置 Webhook

在将 API 凭据和 Webhook URL 添加到 .env 文件后,您需要执行以下命令来设置 Webhook URL

php artisan telegram:set:webhook

现在您已经准备好处理 Telegram Bot 的请求了。

命令

默认值

命令的默认路径是您的 App 目录中的 Bot/Commands。这可以在 telegrambot.php 中通过更改 commands_dir 键来修改。

'commands_dir' => app_path('Bot/Commands')

生成命令

您可以使用 artisan 命令生成您命令的类

php artisan telegram:make:command SomethingCommand

这将生成指定命令目录上的命令结构(默认为 App/Bot/Commands)。生成命令后,系统将准备好处理用户发送的 /something

有关 官方 Telegram Bot API 的更多详细信息,请阅读他们的官方文档。