2017-10-20 7 views
0

Je crée un télégramme bot avec laravel et sdk. Tout fonctionne bien. Comment puis-je ajouter un autre bot dans la même application? Dans app/Http/Middleware/VerifyCsrfToken.php ajouterPlusieurs bots dans une application

protected $except = [ 
'437198700:XXXXXXXXXXXXXX_YYYYY/webhook' 
]; 

pour le premier bot. Et en app/config/telegram.php

'bot_token' => '437198700:XXXXXXXXXXXXXX_YYYYY', 

. J'ajoute cette config mais même problème

`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: ajouter cette $bots_manager= new BotsManager($config); $ config ressembler config j'essaie d'appeler $bots_manager = $bots_manager->bot('second'); Retour erreur Bot [second] not configured. Qu'est-ce que je fais mal?

+0

Demandez auteur au lieu de demander ici. – Sean

+1

Si vous regardez [fichier de configuration de telegram.php] (https://github.com/irazasyed/telegram-bot-sdk/blob/master/src/Laravel/config/telegram.php) vous pouvez voir ''bots' => [... '. Utilisez cela pour ajouter plusieurs robots. Je ne vois pas non plus 'bot_token' là ... – ljubadr

+0

@ljubadr Je modifie ma config comme dans l'exemple mais j'ai toujours le même problème. – sandy

Répondre

0

Je voudrais simplement le mettre comme un tableau dans ma telegram.php config:

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

Puis dans mon dossier VerifyCsrfToken.php, la variable $excluded sera:

protected $excluded = [ 
    BOT_ROUTE1, 
    BOT_ROUTE2,  
]; 

Je suis curieux de savoir ce que sont vous cherchez dans l'application avec plusieurs robots de télégrammes?

+0

Lorsque je fais cela, message auquel le second bot vient au premier bot. – sandy

+0

Vous devez ajouter un middleware pour vérifier quel message est destiné à quel robot. –

+0

pourriez-vous voir la mise à jour à la question – sandy

0

une utilisation BotManager

vous devez créer Bot instance de classe pour chaque bot. puis gérer le bot par son nom ou son jeton avec les méthodes de BotManager.

c'est mon exemple python3, mais problème similaire

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);' que mettre dans '$ config'? – sandy

+0

Informations d'identification du bot. voir l'exemple de [sdk] (https://github.com/irazasyed/telegram-bot-sdk/blob/master/src/Laravel/config/telegram.php) ''bots' => [ 'commun' => [ 'nom d'utilisateur' => 'MyFirstBot', 'token' => '123456: abc', ], ], 'deuxième' => [ 'nom d'utilisateur' => 'MySecondBot', ' jeton '=>' 123456: abc ', ], ], ' – dzNET

+0

pourriez-vous voir la mise à jour en question – sandy