wildan99 / yii2-telegram
支持基于Telegram机器人的网站聊天
v0.8.5
2017-10-22 11:01 UTC
Requires
- php: >=5.5.0
- longman/telegram-bot: ^0.35.0
- yiisoft/yii2: >=2.0.1
README
支持基于Telegram机器人的网站聊天
该机器人的逻辑基于 akalongman/php-telegram-bot,因此您可以阅读longman的说明了解如何注册Telegram机器人等。
目前仅支持Telegram webhook api。您需要SSL证书!在http上不工作!
安装
安装此扩展的首选方式是通过 composer。
运行
composer require onmotion/yii2-telegram
将其添加到您的web配置文件
'modules' => [
//...
'telegram' => [
'class' => 'onmotion\telegram\Module',
'API_KEY' => 'forexample241875489:AdfgdfFuVJdsKa1cycuxra36g4dfgt66',
'BOT_NAME' => 'YourBotName_bot',
'hook_url' => 'https://yourhost.com/telegram/default/hook', // must be https! (if not prettyUrl https://yourhost.com/index.php?r=telegram/default/hook)
'PASSPHRASE' => 'passphrase for login',
// 'db' => 'db2', //db file name from config dir
// 'userCommandsPath' => '@app/modules/telegram/UserCommands',
// 'timeBeforeResetChatHandler' => 60
]
//more...
]
并添加到控制台配置文件
'bootstrap' => [
//other bootstrap components...
'telegram'],
'modules' => [
//...
'telegram' => [
'class' => 'onmotion\telegram\Module',
'API_KEY' => 'forexample241875489:AdfgdfFuVJdsKa1cycuxra36g4dfgt66',
'BOT_NAME' => 'YourBotName_bot',
'hook_url' => 'https://yourhost.com/telegram/default/hook', // must be https! (if not prettyUrl https://yourhost.com/index.php?r=telegram/default/hook)
'PASSPHRASE' => 'passphrase for login',
]
],
运行迁移
php yii migrate --migrationPath=@vendor/onmotion/yii2-telegram/migrations #that add 4 tables in your DB
访问 https://yourhost.com/telegram/default/set-webhook(如果非prettyUrl https://yourhost.com/index.php?r=telegram/default/set-webhook)
现在您可以在任何您想要的地方放置
echo \onmotion\telegram\Telegram::widget(); //that add chat button in the page
在右下角您可以看到
如果您点击它
以及服务器端
如果您想限制消息历史记录的存储期限,请将其添加到您的crontab中
#leave 5 days (if empty - default = 7)
php yii telegram/messages/clean 5
您还可以使用自定义命令。为此,您应从 /vendor/onmotion/yii2-telegram/Commands 复制UserCommands目录,并在配置中添加此路径,例如
'userCommandsPath' => '@app/modules/telegram/UserCommands'
timeBeforeResetChatHandler - 在聊天处理器被杀死(如果它忘记了执行/leavedialog)之前的时间(分钟数)。如果为0或未设置,则从不杀死。