furqansiddiqui / telegram
该软件包最新版本(0.3.2)没有可用的许可信息。
Telegram 软件包
0.3.2
2017-11-28 11:30 UTC
Requires
- php: >=7.0.0
- furqansiddiqui/http-client: >=0.2.1
This package is auto-updated.
Last update: 2024-08-29 04:31:21 UTC
README
允许您的用户将 Telegram 与您的应用程序连接并接收通知;
先决条件
- PHP 7.0+
- furqansiddiqui/http-client >= 0.2.1
安装
composer require furqansiddiqui/telegram
集成 Telegram
通过将您的 Telegram 机器人 API 密钥传递给构造函数来获取 Telegram
实例
<?php $telegram = new \Telegram\Telegram("YOUR-API-KEY");
设置 webhook
<?php /** @var $telegram \Telegram\Telegram */ $telegram->webHooks()->setWebHook("https://www.domain.tld/telegram");
自定义处理器
创建一个扩展 AbstractHandler
的处理器类,每个方法对应您希望响应的每个命令。
- 任何不以斜杠 "/" 开头的用户发送的消息都被视为聊天消息,并将由 "chat" 方法处理。
- 所有以斜杠 "/" 开头的用户消息都是命令,并且有按其名称命名的单独方法。
- 您的自定义处理器类必须具有 "start" 和 "help" 方法。
- 理想情况下,您应该将 "chat_id" 参数与数据库中的用户关联起来。
- 在 "start" 命令中,您应生成一个临时认证码并将其发送到 Telegram 聊天,要求用户在适当认证后输入此代码到您的网站。
- 一旦用户在您的网站上输入此代码,您就可以安全地将与该临时代码关联的 "chat_id" 参数与您的用户关联起来。
- 您如何生成/存储和确保此代码的安全性完全取决于您。
- 您应该将方法名称命名为 "camelCase",即当用户输入命令 "/get_balance" 时,处理器将查找并调用 "getBalance" 方法(如果存在)。
- 任何跟在命令(斜杠 "/" 之后)的单词都将被视为参数。
- 所有参数都存储在 "params" 属性中,作为索引数组。
- 所有非命令消息都可以在 "chat" 方法中处理。有关示例,请参阅
BasicHandler
类。
监听
- 您还应在您的 webhook URL 中使用秘密令牌,并检查从 Telegram webhook 服务器接收到的数据以确保安全。这必须完全由您自己完成。调用 listen/handle 方法假定您已经成功验证了此请求。
<?php /** @var $telegram \Telegram\Telegram */ $telegram->setHandler(new MyCustomHandler($telegram)); $telegram->listen($_REQUEST);
有关编写您自己的自定义处理器的更好理解,请参阅 BasicHandler
类。
发送消息
使用 sendMessage
方法向特定用户或聊天发送消息。
如果您已将 "chat_id" 参数与您的某个用户关联,则检索此值以在任何时候向该特定用户发送通知/消息。
<?php /** @var $telegram \Telegram\Telegram */ $telegram->sendMessage($chatId, "Your-Message");
注意:此方法适用于非交互式消息,即用户之前已通过 "start" 或其他自定义命令订阅了您的机器人,现在您可以向此用户发送警报/通知。
对于交互式消息,您可以在自定义处理器中使用 sendReply
方法作为更快的方式。