idct / php-telegram-sender
一个简单的PHP库,简化了使用Telegram IM发送机器人消息的任务
Requires
- php: ^7.1
- ext-curl: *
- myclabs/php-enum: ^1.7.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- php-coveralls/php-coveralls: ^2.1
- php-mock/php-mock-phpunit: ^2.5
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-24 11:39:02 UTC
README
一个简单的PHP库,简化了使用Telegram IM发送机器人消息的任务。
安装
在项目中安装库的最佳方式是使用 Composer
composer require idct/php-telegram-sender
当然,您仍然可以手动将所有必需的文件包含到项目中,使用 using
语句,但强烈建议使用 Composer 和自动加载。
用法
操作通过静态方法处理,以便尽可能简单,目前没有从主类实例中真正受益。
要使用它,首先在某个地方添加 use
语句
use IDCT\TelegramSender\TelegramSender;
然后您有几个可用的方法
- 通过机器人ID检查机器人是否有效
TelegramSender::checkIfBotIsValid(123123123);
其中123123123是机器人的ID。
根据机器人ID是否有效返回 true
或 false
。
- 您可以使用以下方式检索基本机器人信息
TelegramSender::retrieveBotInfo(123123123);
其中123123123是机器人的ID。
返回一个 BotInfo
实例。
- 库的主要方法是
sendMessage
TelegramSender::sendMessage(Bot $bot, Channel $channel, string $message, ParseMode $parseMode = null, bool $disableWebPagePreview = false, bool $disableAudioNotification = false, int $threadId = null);
消息支持 HTML 和 Markdown,具体取决于 $parseMode
参数的值。
$channel
必须是 PublicChannel
或 PrivateChannel
的实例。
示例
TelegramSender::sendMessage( new Bot(123123123, 'AAFKeyoJC6wHmHW85TfUktEMc2x5iz9melE'), new PrivateChannel(90808012), 'my message' );
可以从Telegram应用中获取 Bot
和 Channel
构造函数的值:请参阅下面的说明。
方法返回一个包含以下元素的数组:[链接](https://core.telegram.org/bots/api#message)
待办事项:库中的消息实体。
如何创建新的机器人?
- 在Telegram上联系
BotFather
用户
- 向
BotFather
发送/newbot
并回答所有问题。
- 看起来像 635092640:AAGfG72lFg0L_Uf8Cfhb5wBi4UFTm7R2lDY 的部分是您的机器人ID和密钥。冒号之前的部分是ID,之后的部分是密钥。所以对于上面的例子,它将是
id: 635092640
key: AAGfG72lFg0L_Uf8Cfhb5wBi4UFTm7R2lDY
因此,您将如下创建机器人的实例
$bot = new Bot(635092640, 'AAGfG72lFg0L_Uf8Cfhb5wBi4UFTm7R2lDY');
从哪里获取频道ID?
-
使用您的Telegram客户端创建频道(通常在左侧汉堡菜单中的
新建频道
选项)。 -
将您的机器人设置为频道的管理员。
-
打开
https://web.telegram.org/
并使用您的账户登录。 -
点击您想要的频道。浏览器中的URL将发生变化。
-
如果URL变为:
https://web.telegram.org/#/im?p=c1282543751_17534450962567305630
,则1282543751
是您的频道ID。所以基本上是问号(?)之后c
和_
之间的部分(查询字符串)。 -
使用它来创建
PrivateChannel
或PublicChannel
实例,具体取决于您频道的可见性。
...我知道这相当复杂,但到目前为止,Telegram的API没有公开任何获取机器人频道的方法。
贡献
为了贡献,请提交一个Pull Request或一个Issue。目前有两个主要的贡献点:支持Telegram API的附加方法以及更好的单元测试。处理响应:如为响应创建实体类也会非常有用。