bots8/nutgram-starter-kit

Nutgram构建Telegram机器人的入门套件

4.0.0 2024-01-30 04:33 UTC

This package is auto-updated.

Last update: 2024-09-06 12:47:01 UTC


README

使用这个简单的入门套件开始您的Telegram机器人开发之旅,专为初学者设计。它提供必需的工具和指南,以轻松构建您的第一个Telegram机器人,对于想要创建生产可用机器人的用户来说是个不错的选择。

阅读nutgram文档,因为此入门套件使用该库作为核心组件(版本3.x)

https://nutgram.dev/

主要功能

  • 结构良好的文件夹
  • 易于数据库集成
  • CLI用于开发
  • 测试套件(Pest)
  • 准备用于生产

需求

在开始之前,请确保已安装以下需求

  • PHP 8.1或更高版本
  • PHP的cURL扩展
  • 数据库(可选)

安装

  1. 将仓库克隆到您的本地机器或使用composer

    composer create-project bots8/nutgram-starter-kit mybot

配置

  1. 复制.env.example文件并将其重命名为.env

    cp .env.example .env
  2. 在文本编辑器中打开.env文件,并使用您的实际机器人令牌更新BOT_TOKEN

结构

  • app/
    • Commands/:此目录包含您的机器人应用程序的命令类。
    • Conversations/:此目录包含您的机器人应用程序的会话类。
    • Database/:此目录包含与您的机器人应用程序相关的数据库类。
    • Middleware/:此目录包含您的机器人应用程序的中间件类。
    • Kernel.php:此文件是应用程序的控制台内核,它处理命令执行并提供一个集中位置来注册所有应用程序的控制台命令等。
  • library/:此目录可用于存储您的机器人可能需要的任何附加库或实用程序。您可以根据项目的特定需求组织此文件夹。
  • .env.example:此文件作为示例配置文件。它包括应用程序可能需要的环境变量的占位符。复制此文件作为.env并填写实际值。
  • bootstrap.php:此文件用于初始化应用程序。它可能包含任何必要的设置或引导逻辑。
  • handler.php:此文件是一个示例webhook处理器。您可以自定义此文件以处理来自Telegram的传入更新。
  • index.php:您的机器人的主要入口点。您可以在其中包含应用程序逻辑或用于引导您的机器人。
  • tests/:此目录包含测试脚本和套件以验证您的机器人应用程序的功能和行为。
  • console/:此目录包含用于管理和与您的机器人应用程序交互的命令行脚本和实用程序。

使用方法

  1. 对于生产发布,运行webhook命令来设置您的webhook

    php nutgram webhook set
  2. 启动您的机器人应用程序(开发)

    php nutgram run
  3. 或者如果您想移除webhook

    php nutgram webhook delete

与数据库协同工作

您可以轻松地与数据库交互,但到目前为止,您只能使用支持的PDO数据库,以下是一些使用查询构建器的示例代码

use App\Database\DB;

$qb = new DB();


// Select first data
$res = $qb->table('users')
    ->select('id')
    ->where('username', '=', $username)
    ->first();

// Select all data
$res = $qb->table('users')
    ->select('*')
    ->where('id', '>', 10)
    ->findAll();

// Insert data
$qb->table('users')->insert([
    'telegramId' => $from->id,
    'username' => $from->username,
    'name' => $from->first_name.' '.$from->last_name,
]);

...

更多方法如:update($arr)count()delete()increment($col)

许可

此Nutgram入门套件是开源软件,受MIT许可许可。

请随意自定义、扩展并分享您基于此入门套件构建的机器人。编码愉快!