griffin0t03h/telegram-bot-sdk

Telegram Bot API 的非官方 PHP SDK,旨在简化构建和与 Telegram 机器人交互的过程。

dev-master / 1.0.x-dev 2024-08-18 18:51 UTC

This package is auto-updated.

Last update: 2024-09-19 10:48:17 UTC


README

Latest Version on Packagist Software License Total Downloads

Telegram Bot API 的扩展原生 PHP 封装器,无需任何要求。支持所有方法和响应类型。

机器人:开发者指南

机器人是专门为处理自动消息而设计的特殊 Telegram 账户。用户可以通过在私人或群聊中发送命令消息与机器人交互。

您可以通过向 bot API 发送 HTTPS 请求来控制您的机器人。

Bot API 是一个基于 HTTP 的接口,为那些热衷于为 Telegram 构建机器人的开发者而创建。要了解如何创建和设置机器人,请参阅 机器人介绍机器人常见问题解答

安装

通过 Composer

$ composer require telegram-bot-sdk/api

API 封装器

发送消息

$bot = new \TelegramBotSDK\Api\BotApi('YOUR_BOT_API_TOKEN');

$bot->sendMessage($chatId, $messageText);

发送文档

$bot = new \TelegramBotSDK\Api\BotApi('YOUR_BOT_API_TOKEN');

$document = new \CURLFile('document.txt');
$bot->getContentService()->sendDocument($chatId, $document);

带回复键盘的消息

$bot = new \TelegramBotSDK\Api\BotApi('YOUR_BOT_API_TOKEN');

$keyboard = new \TelegramBotSDK\Types\ReplyKeyboardMarkup(array(array("one", "two", "three")), true); // true for one-time keyboard
$bot->sendMessage($chatId, $messageText, replyMarkup: $keyboard);

带内嵌键盘的消息

$bot = new \TelegramBotSDK\Api\BotApi('YOUR_BOT_API_TOKEN');

$keyboard = new \TelegramBotSDK\Types\Inline\InlineKeyboardMarkup(
            [
                [
                    ['text' => 'link', 'url' => 'https://core.telegram.org']
                ]
            ]
        );
$bot->sendMessage($chatId, $messageText, replyMarkup: $keyboard);

发送媒体组

$bot = new \TelegramBotSDK\Api\BotApi('YOUR_BOT_API_TOKEN');

$media = new \TelegramBotSDK\Types\InputMedia\ArrayOfInputMedia();
$media->addItem(new TelegramBotSDK\Types\InputMedia\InputMediaPhoto('photo_url'));
$media->addItem(new TelegramBotSDK\Types\InputMedia\InputMediaPhoto('photo_url'));
// Same for video
// $media->addItem(new TelegramBotSDK\Types\InputMedia\InputMediaVideo('video_url'));
$bot->getContentService()->sendMediaGroup($chatId, $media);

客户端

require_once "vendor/autoload.php";

try {
    $bot = new \TelegramBotSDK\Client('YOUR_BOT_API_TOKEN');

    //Handle /ping command
    $bot->command('ping', function ($message) use ($bot) {
        $bot->sendMessage($message->getChat()->getId(), 'pong!');
    });
    
    //Handle text messages
    $bot->on(function (\TelegramBotSDK\Types\Update $update) use ($bot) {
        $message = $update->getMessage();
        $id = $message->getChat()->getId();
        $bot->sendMessage($id, 'Your message: ' . $message->getText());
    }, function () {
        return true;
    });
    
    $bot->run();

} catch (\TelegramBotSDK\Exception $e) {
    $e->getMessage();
}

本地 Bot API 服务器

用于使用自定义 本地 bot API 服务器

use TelegramBotSDK\Client;

$token = 'YOUR_BOT_API_TOKEN';
$bot = new Client($token);

第三方 Http 客户端

use TelegramBotSDK\Client;
use TelegramBotSDK\Http\SymfonyHttpClient;
use Symfony\Component\HttpClient\HttpClient;

$token = 'YOUR_BOT_API_TOKEN';
$bot = new Client($token, new SymfonyHttpClient(HttpClient::create()));

变更日志

请参阅 CHANGELOG 了解最近有哪些变更。

测试

$ composer test

第三方许可证

此项目还包括以下第三方项目的代码