我使用laravel和sdk创建电报机器人。一切顺利。如何在同一个应用程序中添加另一个机器人?在protected $except = [
'437198700:XXXXXXXXXXXXXX_YYYYY/webhook'
];
我添加
app/config/telegram.php
第一个机器人。并在'bot_token' => '437198700:XXXXXXXXXXXXXX_YYYYY',
`return [
// 'default' => 'common',
'bots' => [
'common' => [
'username' => 'MyTelegramBot',
'token' => env('TELEGRAM_BOT_TOKEN'),
'commands' => [
// Acme\Project\Commands\MyTelegramBot\BotCommand::class
],
],
'second' => [
'username' => 'MySecondBot',
'token' => env('TELEGRAM_MANAGER_BOT_TOKEN'),
],
],
向上。我将此添加到配置但仍然是同样的问题
$bots_manager= new BotsManager($config);
更新:我添加此$bots_manager = $bots_manager->bot('second');
$ config看起来像config我尝试拨打Bot [second] not configured.
返回错误DELETE FROM table2 WHERE NOT EXISTS (SELECT a.pnr, a.dmax FROM table1 a WHERE a.pnr = table2.pnr AND a.dmax = table2.dt)
我做错了什么?
答案 0 :(得分:0)
我只是把它作为一个数组放在我的telegram.php
配置中:
'bot_tokens' => [
TOKEN1,
TOKEN2,
// Other bot tokens here
]
然后在我的VerifyCsrfToken.php
文件中,$excluded
变量将是:
protected $excluded = [
BOT_ROUTE1,
BOT_ROUTE2,
];
我很想知道你在多个电报机器人的应用程序中寻找什么?
答案 1 :(得分:0)
你应该为每个机器人创建Bot类实例。然后使用BotManager方法按名称或令牌管理bot。
这是我的Python3示例,但它类似的问题
class Bot(Resource):
bots = {}
def __init__(self, token):
self.updater = Updater(token)
self.bots[token] = self
@classmethod
def getInstance(cls, token):
return cls.bots[token]
def start_bot(self):
self.updater.start_polling()
def stop_bot(self):
self.updater.stop()
#####################################
bots = Bots.query.all()
if bots:
for bot in bots:
tb = Bot(bot.token)
tb.start_bot()
bot = Bot.getInstance(bot.token)
bot.stop_bot()