PHP Telegram Bot:构建Telegram机器人的PHP框架

鸿辰 PHP 787

概述

Telegram是一个流行的即时通讯平台,支持发送消息、照片、视频和各种文件类型。随着Telegram的普及,Telegram Bot API应运而生,允许开发者创建自动化的交互式机器人,为用户提供信息和服务。php-telegram-bot/core是一个基于Telegram Bot API的PHP框架,它为开发者提供了一个简单易用的平台来构建和部署自己的Telegram机器人。

功能特点

  • 全面支持Telegram Bot API 7.1:该框架支持所有Telegram Bot API 7.1版本中定义的类型和方法。
  • 插件化扩展:PHP Telegram Bot是一个纯PHP项目,可以通过插件进行扩展,使得功能可以轻松地进行定制和扩展。
  • Webhook和getUpdates方法:支持通过Webhook和getUpdates两种方式来接收Telegram的更新。
  • 数据库支持:推荐使用MySQL来存储消息、用户和聊天数据,以便在命令中进一步使用。
  • 命令管理:支持预定义命令和自定义命令,以及命令配置,包括管理命令,如设置管理员和频道管理。
  • 渠道支持:可以管理Telegram频道,并直接通过机器人的私聊界面进行操作。
  • 文件上传和下载:提供了文件上传和下载的路径设置功能。
  • 日志记录:支持日志记录功能,便于追踪和调试。
  • 文档和示例:提供了详细的文档和示例机器人,帮助开发者快速上手。

使用

第一步:创建机器人

在该项目的介绍中,已有详细步骤,可点击查看 create-your-first-bot

第二步: 在项目中安装依赖

composer require longman/telegram-bot

第三步:选择更新方式

决定使用Webhook还是getUpdates方法来处理Telegram的更新

推荐使用 webhook 方式。

设置webhook地址

<?php
// Load composer
require __DIR__ . '/vendor/autoload.php';

$bot_api_key  = 'your:bot_api_key';
$bot_username = 'username_bot';
$hook_url     = 'https://your-domain/path/to/hook.php';

try {
    // Create Telegram API object
    $telegram = new Longman\TelegramBot\Telegram($bot_api_key, $bot_username);

    // Set webhook
    $result = $telegram->setWebhook($hook_url);
    if ($result->isOk()) {
        echo $result->getDescription();
    }
} catch (Longman\TelegramBot\Exception\TelegramException $e) {
    // log telegram errors
    // echo $e->getMessage();
}

自定义日志文件

public function __construct(private ContainerInterface $container, LoggerFactory $loggerFactory)
    {
        \Longman\TelegramBot\TelegramLog::initialize(
            // Main logger that handles all 'debug' and 'error' logs.
            $loggerFactory->get('telegram_bot_main', 'telegram'),
            // Updates logger for raw updates.
            $loggerFactory->get('telegram_bot_updates', 'telegram')
        );
    }

编写逻辑

根据需要编写业务逻辑,处理消息和事件

参考示例 php-telegram-bot/example-bot

标签: php composer