2017-10-20 12 views
0

私はlaravelとsdkで電信ボットを作成します。すべてがうまくいく。同じアプリに別のボットを追加するにはどうしたらいいですか? app/Http/Middleware/VerifyCsrfToken.phpに追加します。複数のボットが1つのアプリケーションにあります

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'), 
     ], 
    ], 

UPD:私はこの$bots_manager= new BotsManager($config); $の設定がconfigのように見える追加私は私が間違って何$bots_manager = $bots_manager->bot('second');リターンエラーBot [second] not configured.を呼び出そうか?

+0

ここで尋ねるのではなく、作者を確認して下さい。 – Sean

+1

[telegram.php設定ファイル](https://github.com/irazasyed/telegram-bot-sdk/blob/master/src/Laravel/config/telegram.php)を見ると、 '' bots ' => [... '。それを使って複数のボットを追加します。私もそこに 'bot_token'は表示されません... – ljubadr

+0

@ljubadr私の設定は例のように編集しますが、それでも同じ問題があります。 – sandy

答えて

0

私は単に私のtelegram.php configに配列としてそれを置くでしょう:

'bot_tokens' => [ 
    TOKEN1, 
    TOKEN2, 
    // Other bot tokens here 
] 

その後、私のVerifyCsrfToken.phpファイルで、$excluded変数は次のようになります。

protected $excluded = [ 
    BOT_ROUTE1, 
    BOT_ROUTE2,  
]; 

私が何であるかを知って好奇心あなたは複数のテレグラムのボットでアプリをお探しですか?

+0

これを行うと、2番目のボットが最初のボットに来るというメッセージが表示されます。 – sandy

+0

ミドルウェアを追加して、どのボットを対象としたメッセージかを確認する必要があります。 –

+0

あなたは問題のアップデートを見ることができました – sandy

0

使用BotManager

あなたが各ボットのためのボットクラスのインスタンスを作成する必要があります。 BotManagerメソッドでボットを名前またはトークンで管理します。

それは私の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() 
+0

'$ bots_manager = new BotsManager($ config);' '$ config'に入れるものは? – sandy

+0

ボットクレデンシャル。 [sdk](https://github.com/irazasyed/telegram-bot-sdk/blob/master/src/Laravel/config/telegram.php)の例を参照してください。 '' bots '=> [ ' common ' => [ 'ユーザ名' => 'MyFirstBot' 'トークン' => '123456:ABC'、 ]、 ]、 '第2' => [ 'ユーザ名' => 'MySecondBot' 'トークン '=>' 123456:abc '、 ]、 ]、' – dzNET

+0

問題のアップデートを確認できましたか? – sandy

関連する問題