michyaraque/simpletelegrambot

此包最新版本(v1.0.0)没有可用的许可信息。

使用PHP编写的完整的Telegram机器人API实现,支持内联机器人和完全组件化!

v1.0.0 2021-11-29 03:15 UTC

This package is auto-updated.

Last update: 2024-09-29 05:57:01 UTC


README

想象一下,能够通过几个步骤创建一个机器人,每个菜单或功能就像是一个类的方法。我开发了这个工具,使创建需要多个屏幕交互的机器人变得更加容易。

项目概述

先决条件

- PHP >= 7.4
- Redis
- Mysql Mariadb
- Domain with SSL

功能

  • 组件内的组件
  • 轻松创建组件
  • 轻松步骤过程

如何使用组件

在“事件”文件夹中,您可以创建多个不同的加载器或分离的机器人。

事件文件夹结构

Events
   └── example
       ├── main.php
       └── __query_helpers.php

要加载此结构文件夹,您必须在公共文件夹中定义

$events = new EventLoader(Updates::userId(), Updates::language());
$events->setPath('example');
$events->forceEvents(['main.php', '__query_helpers.php']);
$events->getEvents();

在main.php中,您必须声明组件路由如下

Component::group('Example', function ($component) {
    $component->include('initialPanels')->get([
        'start' => ['commands' => ['start', 'cancel']],
    ])->init();
});
  • start 指的是位于“initialPanels”文件夹内的Example路径中的静态函数,该文件夹位于“initialPanels”文件夹内
  • initialPanels 必须命名为InitialPanelsComponent.php

组件的文件夹结构如下,您可以添加尽可能多的内容

Components
   ├── Example
   │   └── InitialPanelsComponent.php
   └── Component.php

initialPanelsComponent.php概述

<?php

namespace App\Components\Example;

use App\Models\Data;
use App\Components\Component;
use Telegram\{Client, Updates};

class InitialPanelsComponent extends Component {

    public static function start() {
        Client::sendMessage(Updates::userId(), "Example message");
    }

}

如何 > Telegram函数

Telegram更新在Updates类中全局加载,您可以在任何地方使用静态形式使用它

简单的带内联键盘发送消息

$inline_keyboard = new InlineKeyboard;
$inline_keyboard->inlineKeyboardButton('Button name', 'callback_identifier');
$inline_keyboard->endRow();

Client::sendMessage(Updates::userId(), "Example message", [
    'reply_markup' => $inline_keyboard->inlineKeyboardMarkup()
]);

许可

MIT