ayaya118 / simple-telegram-bot-api
Telegram Bot API 的 PHP 封装
v1.0.2
2024-04-14 08:58 UTC
Requires
- php: >=5.5.0
- ext-curl: *
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ~3.28.0
- guzzlehttp/guzzle: ^7.0
- php-http/multipart-stream-builder: ^1.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
- symfony/http-client: ^4.3 | ^5.0 | ^6.0
- symfony/mime: ^4.3 | ^5.0 | ^6.0
- symfony/phpunit-bridge: *
- vimeo/psalm: ^5.9
Suggests
- guzzlehttp/guzzle: To use guzzlehttp/guzzle psr implementation
- php-http/multipart-stream-builder: To use psr/http-client
- psr/http-client: To use psr/http-client
- psr/http-factory: To use psr/http-client
- symfony/http-client: To use symfony/http-client
- symfony/mime: To use symfony/http-client
This package is auto-updated.
Last update: 2024-09-14 09:53:02 UTC
README
一个无需要求的扩展原生 PHP 封装,支持 Telegram Bot API 的所有方法和响应类型。Telegram Bot API
机器人:开发者的介绍
机器人是特殊设计的 Telegram 账户,可以自动处理消息。用户可以通过在私聊或群聊中向机器人发送命令消息与其交互。
您可以通过向 bot API 发送 HTTPS 请求来控制您的机器人。
Bot API 是为希望为 Telegram 构建机器人的开发者创建的基于 HTTP 的接口。有关创建和设置机器人的说明,请参阅 机器人简介 和 机器人常见问题解答。
安装
通过 Composer
$ composer require ayaya118/simple-telegram-bot-api
使用方法
查看示例 DevAnswerBot(俄语)。
API 封装器
发送消息
$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN'); $bot->sendMessage($chatId, $messageText);
发送文档
$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN'); $document = new \CURLFile('document.txt'); $bot->sendDocument($chatId, $document);
带有回复键盘的消息
$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN'); $keyboard = new \TelegramBot\Api\Types\ReplyKeyboardMarkup(array(array("one", "two", "three")), true); // true for one-time keyboard $bot->sendMessage($chatId, $messageText, null, false, null, $keyboard);
带有内联键盘的消息
$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN'); $keyboard = new \TelegramBot\Api\Types\Inline\InlineKeyboardMarkup( [ [ ['text' => 'link', 'url' => 'https://core.telegram.org'] ] ] ); $bot->sendMessage($chatId, $messageText, null, false, null, $keyboard);
发送媒体组
$bot = new \TelegramBot\Api\BotApi('YOUR_BOT_API_TOKEN'); $media = new \TelegramBot\Api\Types\InputMedia\ArrayOfInputMedia(); $media->addItem(new TelegramBot\Api\Types\InputMedia\InputMediaPhoto('https://avatars3.githubusercontent.com/u/9335727')); $media->addItem(new TelegramBot\Api\Types\InputMedia\InputMediaPhoto('https://avatars3.githubusercontent.com/u/9335727')); // Same for video // $media->addItem(new TelegramBot\Api\Types\InputMedia\InputMediaVideo('http://clips.vorwaerts-gmbh.de/VfE_html5.mp4')); $bot->sendMediaGroup($chatId, $media);
客户端
require_once "vendor/autoload.php"; try { $bot = new \TelegramBot\Api\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 (\TelegramBot\Api\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 (\TelegramBot\Api\Exception $e) { $e->getMessage(); }
本地 Bot API 服务器
使用自定义 本地 bot API 服务器
use TelegramBot\Api\Client; $token = 'YOUR_BOT_API_TOKEN'; $bot = new Client($token, null, null, 'https://:8081');
第三方 Http 客户端
use Symfony\Component\HttpClient\HttpClient; use TelegramBot\Api\BotApi; use TelegramBot\Api\Http\SymfonyHttpClient; $token = 'YOUR_BOT_API_TOKEN'; $bot = new Client($token, null, new SymfonyHttpClient(HttpClient::create()););
变更日志
请参阅 CHANGELOG 了解最近更改的详细信息。
测试
$ composer test
贡献
请参阅 CONTRIBUTING 了解详细信息。
安全
如果您发现任何安全相关的问题,请通过电子邮件 mail@igusev.ru 而不是使用问题跟踪器。
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。