furqansiddiqui/telegram

该软件包最新版本(0.3.2)没有可用的许可信息。

Telegram 软件包

0.3.2 2017-11-28 11:30 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:21 UTC


README

允许您的用户将 Telegram 与您的应用程序连接并接收通知;

先决条件

安装

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 方法作为更快的方式。