destyk / lztcombine-php
LztCombine PHP - 用于程序化使用论坛所有功能的库
Requires
- php: >=7.0.0
- ext-v8js: *
- curl/curl: 1.9.*
README
用于程序化使用论坛所有功能的库 lolz.guru
💥 终于,我有时间更新库了 :) 💥
有用信息
- 🔑 安装库
- 🏷️ 构建器
- 🏷️ 官方API
- 📝 如何使用?
- 📂 可用的方法
- 📌 方法 threads/getList
- 📌 方法 threads/aboutOne
- 📌 方法 posts/getList
- 📌 方法 posts/create
- 📌 方法 posts/delete
- 📌 方法 posts/like
- 📌 方法 posts/unlike
- 📌 方法 users/find
- 📌 方法 users/getPosts
- 📌 方法 users/subscribe
- 📌 方法 users/unsubscribe
- 📌 方法 users/whoIAm
- 📌 方法 pages/getList
- 📌 方法 pages/aboutOne
- 📌 方法 notifications/getList
- 📌 方法 notifications/aboutOne
- 📌 方法 conversations/getList
- 📌 方法 conversations/create
- 📌 方法 conversations/delete
- 📌 方法 conversations/aboutOne
🔑 安装库
可以使用 composer 安装此库
composer require destyk/lztcombine-php
🏷️ 构建器
使用构建器,您可以执行对论坛的任何请求,就像在浏览器中执行一样,而无需通过官方API。
📝 使用构建器
⚠️ 重要!为了构建器的正确工作,需要安装 php 扩展 V8Js
。
Ubuntu 上安装扩展的说明 在这里。
要开始工作,您需要一个参数 xf_user
。
有关如何获取它的信息和位置 这里。
require('vendor/autoload.php'); use DestyK\LztPHP\Builder\Core\Request; use DestyK\LztPHP\Builder\Init; use DestyK\LztPHP\Exception; try { $builder = new Init('*xf_user*'); // Если на Вашем аккаунте включена двуфакторная система авторизации, то изначально стоит вызвать метод верификации // Подробнее об этом методе чуть ниже $builder->login()->verify2fa('*Одноразовый код*', '*Тип приложения*'); // Можно создать свой собственный метод. Например, добавить человека в список игнор-листа. $builder->createMethod('account/ignore', Request::POST, [ 'users' => 'BotFather,' ]); // Также есть возможность использовать методы, реализованные из "коробки". // Например, участвовать в конкурсе $threadId = 4120785; // Id темы с розыгрышем $builder->threads()->participate($threadId); } catch(\Exception $e) { echo $e->getMessage(); }
📂 构建器可用的方法
📌 方法 login/verify2fa
允许通过 2FA 系统进行验证。
⚠️ 重要!如果启用双因素认证时出现以下消息,则应一次性使用此方法: You need to call the method: $builder->login()->verify2fa(code, provider)
。
... // Проходим авторизацию с помощью системы 2FA $code = '2444332'; // Одноразовый код из приложения, Telegram или же с эл. почты $provider = 'totp'; // Тип приложения. Доступны значения: totp (приложение), telegram (Telegram) и email (эл. почта) $builder->login()->verify2fa($code, $provider);
在成功通过身份验证后,最好删除此方法的调用,因为将向论坛发送额外的多余请求。
📌 方法 createMethod
允许绕过官方API创建对lolzteam论坛的任何请求。
... // Для наглядности можем создать вручную метод threads/bump $threadId = 2444332; // ID Вашей темы, которую нужно поднять $builder->createMethod('threads/' . $threadId . '/bump', $builder::GET);
📌 💥 方法 threads/participate
允许参加比赛。
... $threadId = 2444332; // ID темы с конкурсом $builder->threads()->participate($threadId);
📌 方法 threads/bump
允许提升指定的主题(如果它是您的)。
... $threadId = 2444332; // ID Вашей темы, которую нужно поднять $builder->threads()->bump($threadId);
📌 方法 market/purchase
尝试购买指定的帐户。
... $itemId = 2444332; // ID аккаунта, который нужно купить $price = 15; // Стоимость, за которую готовы совершить покупку $builder->market()->purchase($itemId, $price);
📌 方法 market/purchaseCheck
检查购买帐户的有效性/无效性。
⚠️ 重要!必须在 market/purchase
之后调用此方法
... $itemId = 2444332; // ID аккаунта, который нужно проверить $builder->market()->purchaseCheck($itemId);
📌 方法 market/purchaseConfirm
确认购买并获得购买的商品。
⚠️ 重要!必须在 market/purchaseCheck
之后调用此方法
... $itemId = 2444332; // ID аккаунта, покупку которого нужно подтвердить $builder->market()->purchaseConfirm($itemId);
📌 方法 market/paymentCreate
创建新的账户充值申请
... $amount = 50; // Сумма для пополнения $currency = 'rub'; // Валюта пополнения $method = 'P2PQiwi'; // Метод оплаты $builder->market()->paymentCreate($currency, $amount, $method);
📌 方法 market/paymentCheck
检查之前创建的申请中的付款。
... $orderId = 125531; // ID ранее созданной Вами заявки $builder->market()->paymentCheck($orderId);
🏷️ 官方API
与构建器不同,官方API完全得到项目管理员的支持。
📝 使用官方API
为了开始工作,您需要获取 access_token
。
您可以在这里了解如何以及在哪里获取它。
require('vendor/autoload.php'); use DestyK\LztPHP\API\Init; try { $api = new Init('*Ваш token*'); $result = $api->users()->whoIAm(); } catch(\Exception $e) { echo $e->getMessage(); }
📂 可用的官方API方法
📌 方法 threads/getList
根据指定参数解析论坛主题。
... $threads = $api->threads()->getList([ 'page' => 2, 'limit' => 5 ]);
📌 方法 threads/aboutOne
解析指定主题的信息。
... $threadId = 5000; // ID темы $thread = $api->threads()->aboutOne($threadId);
📌 方法 posts/getList
根据指定参数解析特定主题中的帖子。
... $threads = $api->posts()->getList([ 'thread_id' => 26412, // ID темы 'page' => 1, 'limit' => 10 ]);
📌 方法 posts/create
在指定主题中创建新的帖子。
... $threadId = 5000; // ID темы $postBody = 'Hello World'; // Содержимое поста $post = $api->posts()->create($threadId, $postBody, [ 'quote_post_id' => 12050 // Если передается, то threadId не обязателен ]);
📌 方法 posts/delete
删除创建的帖子。
... $postId = 5000; // ID созданного поста $api->posts()->delete($postId, [ 'reason' => 'Так звёзды сошлись...' // Причина удаления ]);
📌 方法 posts/like
对指定帖子点赞。
... $postId = 5000; // ID созданного поста $api->posts()->like($postId);
📌 方法 posts/unlike
从指定帖子取消点赞。
... $postId = 5000; // ID созданного поста $api->posts()->unlike($postId);
📌 方法 users/find
根据指定参数解析论坛用户。
... $users = $api->users()->getList([ 'username' => 'DestyK', // юзернейм 'user_email' => 'admin@mail.ru' // почта юзера ]);
📌 方法 users/getPosts
查询用户的帖子列表。
... $userId = 14647; // ID пользователя $posts = $api->users()->getPosts($userId, [ 'page' => 1, 'limit' => 5 ]);
📌 方法 users/subscribe
为指定用户申请订阅。
... $userId = 14647; // ID пользователя $api->users()->subscribe($userId);
📌 方法 users/unsubscribe
取消对指定用户的订阅。
... $userId = 14647; // ID пользователя $api->users()->unsubscribe($userId);
📌 方法 users/whoIAm
获取当前令牌的信息。
... $info = $api->users()->whoIAm();
📌 方法 pages/getList
根据指定参数解析论坛的板块。
... $pages = $api->pages()->getList([ 'parent_page_id' => 2, // ID родительского раздела 'order' => 'natural' // Доступны значения: natural, list ]);
📌 方法 pages/aboutOne
解析指定板块的信息。
... $pageId = 2000; // ID раздела $pageInfo = $api->pages()->aboutOne($pageId);
📌 方法 notifications/getList
解析用户的通告。
... $notifications = $api->notifications()->getList();
📌 方法 notifications/aboutOne
获取通告的内容。
... $notificationId = 2000; // ID оповещения $notificationInfo = $api->notifications()->aboutOne($notificationId);
📌 方法 conversations/getList
根据指定参数解析私人消息。
... $conversations = $api->conversations()->getList([ 'page' => 2, 'limit' => 5 ]);
📌 方法 conversations/create
创建新的私人消息。
... $conversationTitle = 'Привет, как дела?'; // Заголовок личного сообщения $recipients = '1252,3556,4361'; // ID пользователей через запятую $messageBody = 'Содержимое сообщения'; $conversation = $api->conversations()->create($conversationTitle, $recipients, $messageBody);
📌 方法 conversations/delete
删除私人消息。
... $conversationId = 7000; // ID личного сообщения $api->conversations()->delete($conversationId);
📌 方法 conversations/aboutOne
获取私人消息的详细内容。
... $conversationId = 7000; // ID личного сообщения $conversation = $api->conversations()->aboutOne($conversationId);