hitmare / unlockptb
PHP Telegram Bot 锁定和解锁
Requires
- php: ^5.5|^7.0
- longman/telegram-bot: *
README
目录
简介
这是 PHP Telegram Bot 库的 unlock 类,用于在私有和群聊频道中锁定和解锁机器人
说明
安装
通过 [Composer][composer] 安装此包。编辑您的项目 composer.json
文件,以要求 hitmare/unlockptb
。
编辑 composer.json 文件,并在 require 下添加 hitmare/unlockptb
{ "name": "yourproject/yourproject", "type": "project", "require": { "php": ">=5.5", "longman/telegram-bot": "*", "hitmare/unlockptb": "*" } }
然后运行 composer update
或者
在命令行中运行此命令
composer require hitmare/unlockptb
-
然后您需要将
chat_unlock.sql
文件导入到您的现有 Telegram 数据库中 -
将以下内容添加到
hook.php
中,其中$telegram->setCommandConfig
位于
$unlockptb = array('private','group','supergroup'); $telegram->setCommandConfig('lockstatus', ['lockChat' => $unlockptb]); $telegram->setCommandConfig('lock', ['lockChat' => $unlockptb]); $telegram->setCommandConfig('unlock', ['lockChat' => $unlockptb]);
您还需要在 hook.php
中为每个要锁定的命令添加 CommandConfig 行
例如
$telegram->setCommandConfig('lockedcommand', ['lockChat' => $unlockptb]);
将锁定状态检查添加到您的文件中
要使用此库,您必须在包含锁功能的每个命令文件中添加检查锁定状态的代码。据我所知,这是在不修改机器人主代码的情况下实现此功能的唯一方法
- 添加所需命名空间
use Hitmare\UnlockPTB\Unlock;
- 在
execute()
函数中首先添加锁定状态检查
$message = $this->getMessage(); $chat_id = $message->getChat()->getId(); $isUnlocked = Unlock::isUnlocked($chat_id); $lockChat = $this->getConfig('lockChat'); $thisChat = $message->getChat()->getType(); //Check if the lock applys to this Chat Type if (in_array($thisChat,$lockChat)) { //Check if Command is unlocked if (!$isUnlocked) { $data = ['chat_id' => $chat_id, 'text' => 'This Command is locked inside this Chat']; return Request::sendMessage($data); } } // Your Code down here
要定义在哪种类型的聊天中应用锁定,只需在 hoop.php
中添加或删除聊天类型即可
$unlockptb = array('private','group','supergroup');
锁定适用于上述数组中匹配的任何类型的聊天
如何使用
- 生成 Authkey
生成 Authkey 有两种方法
通过 /chats *
命令获取所需的聊天或用户 ID,然后直接向机器人执行 /getAutchkey <id>
或者
(仅适用于群聊) 在群聊中执行 /getAutchkey
,机器人会将 Authkey 发送给执行命令的机器人管理员
- 为私有聊天解锁机器人
- 执行
/unlock <Authkey>
,机器人将被解锁。对于群聊 - 作为 机器人管理员 或 频道所有者 执行
/unlock <Authkey>
,机器人将被解锁。
- 执行
要锁定机器人,请执行 /lock
。在群聊中,只有机器人管理员和群聊所有者可以使用它
要显示锁定状态,请执行 /lockstatus
。在群聊中,只有机器人管理员和群聊所有者可以使用它
可用命令
此库包括四个(4)命令
/getAuthkey
- 生成解锁 Authkey。只能由机器人管理员使用/unlock
- 解锁机器人。在群聊中,只有机器人管理员和群聊所有者可以使用它/lock
- 锁定机器人。在群聊中,只有机器人管理员和群聊所有者可以使用它/lockstatus
- 显示机器人的锁定状态。在群聊中,只有机器人管理员和群聊所有者可以使用它
命令安装
您可以将所有四个命令复制到您的自定义命令文件夹中,或者将以下路径添加到您的自定义命令数组中,以保持与您的命令文件同步
/vendor/hitmare/unlockptb/Commands/
例如
$commands_path = [
__DIR__ . '/Commands/',
__DIR__ . '/vendor/hitmare/unlockptb/Commands/',
];