hitmare/unlockptb

PHP Telegram Bot 锁定和解锁

1.2.2 2017-10-17 12:36 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:41:19 UTC


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');

锁定适用于上述数组中匹配的任何类型的聊天

如何使用

  1. 生成 Authkey

生成 Authkey 有两种方法
通过 /chats * 命令获取所需的聊天或用户 ID,然后直接向机器人执行 /getAutchkey <id>

或者

(仅适用于群聊) 在群聊中执行 /getAutchkey,机器人会将 Authkey 发送给执行命令的机器人管理员

  1. 为私有聊天解锁机器人
    • 执行 /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/',
];