toropyga / telegram
用于与Toropyga的Telegram机器人交互的库
v2.2.0
2021-08-30 05:47 UTC
Requires
- php: >=5.5.0
- ext-curl: *
- ext-json: *
- toropyga/base: *
- toropyga/netcontent: *
README
使用Telegram机器人发送消息
内容
通用概念
Telegram类用于以Telegram机器人的名义发送消息。
运行需要PHP版本5.5及以上,php-json和php-curl库。还使用了Base和NetContent库。
安装
建议使用Composer安装NetContent库。
composer require toropyga/telegram
配置
默认参数的预配置可以通过在类中直接进行,或者使用命名常量完成。如果需要,可以在调用类之前(例如在配置文件中)声明命名常量,并定义默认参数。
- TELEGRAM_TOKEN - Telegram机器人令牌;
- TELEGRAM_ID - 聊天标识符(人)向其发送消息
- TELEGRAM_DEBUG - 启用或禁用调试参数
- TELEGRAM_LOG_NAME - 日志文件名
工作描述
连接类文件
require_once("NetContent.php"); require_once("Base.php"); require_once("Telegram.php");
或使用composer
require_once("vendor/autoload.php");
初始化类
use \FYN\Base; $net = new FYN\NetContent(); $telegram = new FYN\Telegram($net);
或自动连接NetContent类
use \FYN\Base; $telegram = new FYN\Telegram();
设置发送消息时的Telegram API交互方法
$telegram->setMethod('sendVideo');
支持的方法
- 'sendMessage' - 发送文本消息
- 'sendPhoto' - 发送照片或图像
- 'sendDocument' - 发送文档作为附件
- 'sendVideo' - 发送视频文件
- 'sendAudio' - 发送音频文件
- 'sendVoice' - 发送语音消息
- 'sendAnimation' - 发送动画图像
设置Telegram机器人令牌
$telegram->setToken("000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX");
设置Webhook服务器参数
$webhook_url = 'https://your_server_path'; // адрес Webhook-сервера $certificate = '/home/user/ssl/my_ssl'; // путь к персональному сертификату (необязательный параметр) $ip_address = '000.000.000.000'; // IP-адрес , который будет использоваться для отправки запросов Webhook вместо IP-адреса, полученного через DNS (необязательный параметр) $max_connections = 40; // максимальное количество одновременных подключений к Webhook-серверу [1-100] (необязательный параметр) $telegram->setWebhook ($webhook_url, $certificate, $ip_address, $max_connections);
删除Webhook服务器
$telegram->deleteWebhook();
获取Webhook服务器信息
$info = $telegram->getWebhookInfo();
设置接收者标识符
$telegram->setChatID("000000000");
开启调试
$telegram->setDebug(true);
如果启用,则记录所有操作,否则只记录最终结果。
获取日志
$telegram->getLogs();
返回包含操作和错误数组的对象,以及日志文件名
发送消息示例
$token = "000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // токен Телеграм бота $chat_id = 000000000; // ID чата получателя $telegram->setMethod('sendMessage'); $telegram->setToken($token); $telegram->setChatID($chat_id); if (!$answer = $telegram->sendToTelegram($message)) Base::dump($telegram->getLogs()); else Base::dump($answer);
或使用默认参数发送消息
$message = "Hi!"; if (!$answer = $telegram->sendToTelegram($message)) Base::dump($telegram->getLogs()); else Base::dump($answer);
发送照片示例
$token = "000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // токен Телеграм бота $chat_id = 000000000; // ID чата получателя $reply_message_id = 0000; // ID сообщения на которое даём ответ, по умолчанию - 0; $caption = "It's my photo!"; $path_to_photo = "/home/images/my.jpeg"; $telegram->setDebug(true); $telegram->setToken($token); $telegram->setChatID($chat_id); $telegram->setMethod('sendPhoto'); if (!$answer = $telegram->sendToTelegram($caption, $path_to_photo, $reply_message_id)) Base::dump($telegram->getLogs()); else Base::dump($answer);
发送文档给用户
$chat_id = 111111111; // ID чата получателя $caption = "It's my photo!"; $path_to_photo = "/home/images/my.jpeg"; $telegram->setMethod('sendPhoto'); if (!$answer = $telegram->sendToTelegram($caption, $path_to_photo, 0, $chat_id)) Base::dump($telegram->getLogs()); else Base::dump($answer);
或使用默认参数发送照片
$caption = "It's my photo!"; $path_to_photo = "/home/images/my.jpeg"; $telegram->setMethod('sendPhoto'); if (!$answer = $telegram->sendToTelegram($caption, $path_to_photo)) Base::dump($telegram->getLogs()); else Base::dump($answer);