chipslays/tas-wrapper

简单API包装,轻松管理TelegramApiServer。

0.0.6 2021-01-18 15:35 UTC

This package is auto-updated.

Last update: 2024-09-18 23:17:22 UTC


README

简单的API包装,轻松在您的项目中管理 TelegramApiServer

安装

composer require chipslays/tas-wrapper

示例

客户端

支持所有MadelineProto的方法,方法列表 这里

use TelegramApiServer\Client;

require 'vendor/autoload.php';

$client = new Client([
    'host' => '127.0.0.1',
    'port' => '9503',
    'session' => 'session_name',
]);

$response = $client->get('getSelf')->execute(); // GET request
$response = $client->post('getSelf')->execute(); // POST request

$response = $client->get('messages.sendMessage', [
    'peer' => '@chipslays',
    'message' => 'Hello from tas-wrapper! 👋',
    'parse_mode' => 'html',
])->execute();

此外,您可以通过option(NAME_OPTION, 'value')方法定义curl选项。

$response = $client
                ->get('getSelf')
                ->option(CURLOPT_TIMEOUT, 60)
                ->option(CURLOPT_HEADER, false)
                ->execute();

映射您自己的方法(别名),这很简单

$client->map('sendMessage', fn($peer, $text) => $client->get('messages.sendMessage', [
    'peer' => $peer,
    'message' => $text,
])->execute());

$response = $client->sendMessage('@chipslays', 'so simple!');

每次调用sendMessage方法时,都会再次执行第二个参数中的函数。

如果您需要函数只执行一次,并在后续时间只返回执行结果,请使用mapOnce()方法而不是map()

$client->mapOnce('getSelf', fn() => $client->get('getSelf')->execute());

$me = $client->getSelf();

会话

管理TelegramApiServer会话,更多详情 这里

use TelegramApiServer\Session;

require 'vendor/autoload.php';

// This is example of default config
// NOTE: If you have the same data, you can skip this
Session::setConfig([
    'host' => '127.0.0.1',
    'port' => '9503',
    'schema' => 'http',
]);

// Get sessions list
$response = Session::list();

// Adding new session
$response = Session::add('session_name');

// Removing session (session file will remain)
$response = Session::remove('session_name');

// Remove session file
// WARNING: Don`t forget to logout and call `removeSession` first!
$response = Session::unlink('session_name');