chipslays/telegram-client

PHP 对 MadelineProto 的包装,便于使用 Telegram 客户端 API。

0.0.5 2022-02-21 12:08 UTC

This package is auto-updated.

Last update: 2024-09-21 18:11:52 UTC


README

简单的可扩展 PHP 包装器,便于使用 Telegram 客户端 API。

👷 进行中...

安装

composer require chipslays/telegram-client

用法

在终端中运行此脚本,例如 php client.php

第一次授权将花费较长时间,但之后将更快。

基于 chipslays/event 的事件系统,更多案例请参考。

// client.php

use Chipslays\Telegram\Client;

require_once __DIR__ . '/vendor/autoload.php';

$client = new Client([
    'session' => 'user.chipslays',
    'path' => [
        'sessions' => __DIR__ . '/storage/sessions',
    ],
    'madeline' => [
        'settings' => [
            'app_info' => [
                'app_id' => '###',
                'app_hash' => '######',
            ],
            'logger' => [
                'logger_level' => 0,
            ],
        ],
        'parse_mode' => 'html',
    ],
]);

$result = $client->sendMessage('@chipslays', 'Thank you for PHP MadelineProto wrapper! <3');

简单的用户机器人。

use Chipslays\Telegram\Client;
use danog\MadelineProto\Logger;

require_once __DIR__ . '/../vendor/autoload.php';

$client = new Client([
    'session' => 'user.chipslays',
    'path' => [
        'sessions' => __DIR__ . '/storage/sessions',
    ],
    'madeline' => [
        'settings' => [
            'app_info' => [
                'app_id' => '###',
                'app_hash' => '######',
            ],
            'logger' => [
                'logger_level' => 0,
            ],
        ],
        'parse_mode' => 'html',
    ],
]);

// Catch message where contains ".hello" and edit this message to "Hello World!"
// See more: https://github.com/chipslays/event
$client->on(['message.message' => '.hello'], function () use ($client) {
    if (!$client->fromMe()) {
        return;
    }

    $client->edit('Hello World!');
});

$client->on(['message.message' => '.bday {name}'], function ($name) use ($client) {
    if (!$client->fromMe()) {
        return;
    }

    $client->edit("Happy Birthday, {$name}! 🎉🎂");
});

// Start polling Telegram updates. 
$client->handleUpdates(function ($update) {
    // This executed on every new update.
    Logger::log($update->toArray());
});

更多即将到来...