2017-10-05 1 views
0

Fondamentalement, j'essaie de comprendre comment fonctionne cette api, en faisant ce qui suit je ne suis pas en mesure d'obtenir le message à ma chaîne (I ' m envoyer la commande/test de mon compte de télégramme). Aussi, comment je suis censé utiliser JobQueue et envoyer des msgs automatiques toutes les 3 heures par exemple? L'explication de la documentation ne fonctionne pas pour moi.Méthode pour envoyer des messages à un canal en utilisant api bot de télégramme, python 3 et JobQueue

def test(bot, update): 
    update.send_message(chat_id='@channelid', text='this is a test') 

def main(): 
    # Create the EventHandler and pass it your bot's token. 
    updater = Updater("457160310:AAFlxrH2uAaOMGrgO0suOXFM2gVKywsUL0E") 
    dp = updater.dispatcher 

    dp.add_handler(CommandHandler("test", test)) 

    dp.add_error_handler(error) 

    updater.start_polling() 

    updater.idle() 


if __name__ == '__main__': 
    main() 
+0

Notez que vous avez ajouté le jeton. Si c'est toujours valable, pensez à le changer via @botfather – 91DarioDev

Répondre

0

Pour la mise en œuvre du travail pour envoyer des messages sur des intervalles que vous pouvez lire this page qui est plein d'exemples. Quelqu'un devrait être exactement la même chose que vous voulez faire.

A propos de la chose commande, je pense que la bibliothèque ne reçoit pas les commandes de canaux de sorte que vous pouvez envisager de:

  • envoyer la commande dans le chat privé au bot et le bot envoie la réponse à la le canal (meilleure chose à mon avis)

  • messages poignée de canaux (non commandes) et vérifier si le texte du message contient la commande

Je suggère la première solution afin que vous puissiez même nettoyer le canal

+0

Oui, je connais cette page, le problème est que les exemples ne fonctionnent tout simplement pas. Quant à votre première considération, c'est ce que j'essaie de faire avec ce code que j'ai posté: envoyer la commande en privé depuis mon compte personnel, afin que le bot puisse, au lieu de me répondre, répondre à la chaîne. – user3927607

+0

@ user3927607 pour la première chose que je ne vois pas les emplois dans votre code, donc je ne peux pas dire ce qui ne va pas. Pour la dernière chose dans la fonction de test, utilisez bot.send_message au lieu de mettre à jour. Il devrait fonctionner – 91DarioDev

+0

en utilisant "bot.send_message" corrigé ce problème! Merci beaucoup. Maintenant à propos du travail: il n'y a pas de travail dans le code parce que je ne sais pas où l'implémenter: devrais-je mettre le job dans la fonction principale et faire appel à une autre fonction (test par exemple)? – user3927607