TelegramBotPHP, 一个非常简单的用于发送消息的PHP

A very simple PHP Telegram Bot API for sending messages.

 

Git URL:

 

git://www.github.com/Eleirbag89/TelegramBotPHP.git

Git Clone代码到本地:

git clone http://www.github.com/Eleirbag89/TelegramBotPHP

Subversion代码到本地:

$ svn co --depth empty http://www.github.com/Eleirbag89/TelegramBotPHP
Checked out revision 1.
$ cd repo
$ svn up trunk
TelegramBotPHPAPIPHPCURL

Total DownloadsLicenseStyleCI

一个非常简单的电报 API。
符合 2017年11月17日 Telegram API更新。

要求

对于 WebHook:

对于 getUpdates ( 长轮询):

  • 执行脚本以提供消息的某种方法( 例如 cronjob )

下载

使用 Composer在你的项目目录中,运行:


composer require eleirbag89/telegrambotphp


或者


php composer.phar require eleirbag89/telegrambotphp


注:如果你没有 Composer,你可以在这里下载它,。

使用发布归档文件https://github.com/Eleirbag89/TelegramBotPHP/releases

使用 Git从项目目录中运行:


git clone https://github.com/Eleirbag89/TelegramBotPHP.git


安装

通过 Composer 自动装弹机通过使用 Composer 下载后,可以包括 Composer的自动加载程序:

include (__DIR__.'/vendor/autoload.php');$telegram=newTelegram('YOUR TELEGRAM TOKEN HERE');

通过TelegramBotPHP类在你的服务器中复制 Telegram.php 并将它的包含在新的bot脚本中:

include'Telegram.php';$telegram=newTelegram('YOUR TELEGRAM TOKEN HERE');

注意:要启用错误日志文件,还要在 Telegram.php 文件的同一目录中复制 TelegramErrorLogger.php。

配置( WebHook )

导航到 https://api.telegram.org/bot(BOT_TOKEN)/setWebhook?url=https://yoursite.com/your_update.php,或者使用Telegram类setWebhook方法”。

示例

$telegram=newTelegram('YOUR TELEGRAM TOKEN HERE');$chat_id=$telegram->ChatID();$content=array('chat_id'=>$chat_id, 'text'=>'Test');$telegram->sendMessage($content);

如果你想从电报响应中获取某些特定参数:

$telegram=newTelegram('YOUR TELEGRAM TOKEN HERE');$result=$telegram->getData();$text=$result['message'] ['text'];$chat_id=$result['message'] ['chat']['id'];$content=array('chat_id'=>$chat_id, 'text'=>'Test');$telegram->sendMessage($content);

要上传照片或者其他文件,你需要使用CurlFile加载它:

// Load a local file to upload. If is already on Telegram's Servers just pass the resource id$img=curl_file_create('test.png','image/png'); $content=array('chat_id'=>$chat_id, 'photo'=>$img );$telegram->sendPhoto($content);

在电报服务器上下载文件

$file=$telegram->getFile($file_id);$telegram->downloadFile($file['result']['file_path'], './my_downloaded_file_on_local_server.png');

有关完整示例,请参见 update.php 或者更新 cowsay.php。 如果你想看到 CowSay Bot在操作中,请将它添加。

如果你想使用getUpdates而不是 WebHook,你需要在for循环中调用 serveUpdate 函数。

$telegram=newTelegram('YOUR TELEGRAM TOKEN HERE');$req=$telegram->getUpdates();for ($i=0; $i<$telegram-> UpdateCount(); $i++) {// You NEED to call serveUpdate before accessing the values of message in Telegram Class$telegram->serveUpdate($i);$text=$telegram->Text();$chat_id=$telegram->ChatID();if ($text=='/start') {$reply='Working';$content=array('chat_id'=>$chat_id, 'text'=>$reply);$telegram->sendMessage($content); }// DO OTHER STUFF}

有关完整示例,请参见 getUpdates.php。

用户定义函数

要获得完整而完整的函数文档,请检查 http://eleirbag89.github.io/TelegramBotPHP/

生成键盘

telegram的机器人可以有两种不同类型的键盘: 内联和回复。
当ReplyKeyboard链接到整个聊天时,InlineKeyboard被链接到特定的消息。
它们都是按钮 array的array,它对行和列进行了 rapresent。
例如你可以按如下方式排列 ReplyKeyboard:ReplyKeabordExample使用以下代码:

$option=array( //First rowarray($telegram->buildKeyboardButton("Button 1"), $telegram->buildKeyboardButton("Button 2")), //Second row array($telegram->buildKeyboardButton("Button 3"), $telegram->buildKeyboardButton("Button 4"), $telegram->buildKeyboardButton("Button 5")), //Third rowarray($telegram->buildKeyboardButton("Button 6")) );$keyb=$telegram->buildKeyBoard($option, $onetime=false);$content=array('chat_id'=>$chat_id, 'reply_markup'=>$keyb, 'text'=>"This is a Keyboard Test");$telegram->sendMessage($content);

用户单击按钮时,按钮文本将发送回 bot。
对于 InlineKeyboard,它几乎是相同的( 但你需要提供有效的URL或者回调数据)InlineKeabordExample

$option=array( //First rowarray($telegram->buildInlineKeyBoardButton("Button 1", $url="http://link1.com"), $telegram->buildInlineKeyBoardButton("Button 2", $url="http://link2.com")), //Second row array($telegram->buildInlineKeyBoardButton("Button 3", $url="http://link3.com"), $telegram->buildInlineKeyBoardButton("Button 4", $url="http://link4.com"), $telegram->buildInlineKeyBoardButton("Button 5", $url="http://link5.com")), //Third rowarray($telegram->buildInlineKeyBoardButton("Button 6", $url="http://link6.com")) );$keyb=$telegram->buildInlineKeyBoard($option);$content=array('chat_id'=>$chat_id, 'reply_markup'=>$keyb, 'text'=>"This is a Keyboard Test");$telegram->sendMessage($content);

这是使键盘易于使用的所有 helper 功能的列表:

buildKeyBoard(array$options, $onetime=true, $resize=true, $selective=true)

发送自定义键盘 $option 是 array KeyboardButton的array。
查看 ReplyKeyBoardMarkUp 了解更多信息。

buildInlineKeyBoard(array$inline_keyboard)

发送自定义键盘 $inline_keyboard 是 array InlineKeyboardButton的array。
查看 InlineKeyboardMarkup 了解更多信息。

buildInlineKeyBoardButton($text, $url, $callback_data, $switch_inline_query)

创建 InlineKeyboardButton。
查看 InlineKeyBoardButton 了解更多信息。

buildKeyBoardButton($text, $url, $request_contact, $request_location)

创建 KeyboardButton。
查看 KeyBoardButton 了解更多信息。

buildKeyBoardHide($selective=true)

隐藏自定义键盘。
查看 ReplyKeyBoarHide 了解更多信息。

buildForceReply($selective=true)

向用户显示答复界面。
查看 ForceReply 了解更多信息。

使用库的机器人列表

如果你使用这个 API,我将把它添加到这个部分中,让我知道使用这个问题的方法。

表情

要在shell消息中使用表情符号列表,请参阅这里表的列字节: http://apps.timwhitlock.info/emoji/tables/unicode

许可证

这个开源软件是在MIT许可下发布的。 查看 LICENSE.md

欢迎各种捐赠- 代码,测试,文档,Bug 报告,新特性,等等。

  • 发送反馈信息。
  • 提交 Bug 报告。
  • 写入/编辑文档。
  • 修复 Bug 或者添加新功能。

联系我

如果你有问题,可以通过电子邮件联系我,但如果你有问题,请立即打开。

支持我

你可以给我买一个啤酒,或者用 。
或者用Flattr支持我。

未经允许不得转载:破虚小站 » TelegramBotPHP, 一个非常简单的用于发送消息的PHP

赞 (0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏