idct/php-telegram-sender

一个简单的PHP库,简化了使用Telegram IM发送机器人消息的任务

1.0.0 2020-01-05 07:40 UTC

This package is auto-updated.

Last update: 2024-09-24 11:39:02 UTC


README

一个简单的PHP库,简化了使用Telegram IM发送机器人消息的任务。

Tests status Coverage Status GitHub tag (latest SemVer)

安装

在项目中安装库的最佳方式是使用 Composer

composer require idct/php-telegram-sender

当然,您仍然可以手动将所有必需的文件包含到项目中,使用 using 语句,但强烈建议使用 Composer 和自动加载。

用法

操作通过静态方法处理,以便尽可能简单,目前没有从主类实例中真正受益。

要使用它,首先在某个地方添加 use 语句

use IDCT\TelegramSender\TelegramSender;

然后您有几个可用的方法

  • 通过机器人ID检查机器人是否有效
TelegramSender::checkIfBotIsValid(123123123);

其中123123123是机器人的ID。

根据机器人ID是否有效返回 truefalse

  • 您可以使用以下方式检索基本机器人信息
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);

消息支持 HTMLMarkdown,具体取决于 $parseMode 参数的值。

$channel 必须是 PublicChannelPrivateChannel 的实例。

示例

TelegramSender::sendMessage(
    new Bot(123123123, 'AAFKeyoJC6wHmHW85TfUktEMc2x5iz9melE'),
    new PrivateChannel(90808012),
    'my message'
);

可以从Telegram应用中获取 BotChannel 构造函数的值:请参阅下面的说明。

方法返回一个包含以下元素的数组:[链接](https://core.telegram.org/bots/api#message)

待办事项:库中的消息实体。

如何创建新的机器人?

  1. 在Telegram上联系 BotFather 用户

BotFather

  1. BotFather 发送 /newbot 并回答所有问题。

New bot

  1. 看起来像 635092640:AAGfG72lFg0L_Uf8Cfhb5wBi4UFTm7R2lDY 的部分是您的机器人ID和密钥。冒号之前的部分是ID,之后的部分是密钥。所以对于上面的例子,它将是

id: 635092640 key: AAGfG72lFg0L_Uf8Cfhb5wBi4UFTm7R2lDY

因此,您将如下创建机器人的实例

$bot = new Bot(635092640, 'AAGfG72lFg0L_Uf8Cfhb5wBi4UFTm7R2lDY');

从哪里获取频道ID?

  1. 使用您的Telegram客户端创建频道(通常在左侧汉堡菜单中的 新建频道 选项)。

  2. 将您的机器人设置为频道的管理员。

  3. 打开 https://web.telegram.org/ 并使用您的账户登录。

  4. 点击您想要的频道。浏览器中的URL将发生变化。

  5. 如果URL变为: https://web.telegram.org/#/im?p=c1282543751_17534450962567305630,则 1282543751 是您的频道ID。所以基本上是问号(?)之后 c_ 之间的部分(查询字符串)。

  6. 使用它来创建 PrivateChannelPublicChannel 实例,具体取决于您频道的可见性。

...我知道这相当复杂,但到目前为止,Telegram的API没有公开任何获取机器人频道的方法。

贡献

为了贡献,请提交一个Pull Request或一个Issue。目前有两个主要的贡献点:支持Telegram API的附加方法以及更好的单元测试。处理响应:如为响应创建实体类也会非常有用。