用于频道的电报回声机器人

时间:2017-05-04 14:24:16

标签: python python-3.x telegram telegram-bot python-telegram-bot

我有以下用Python (3.x)编写的电报机器人:

import telebot
import subprocess
from telebot import types
import os

bot = telebot.TeleBot(os.environ['BOT_API_TOKEN'])
@bot.message_handler(commands=['start'])

def save(messages):
    for m in messages:
        if "keyword" in m.text:
            f = open("channel", "a")
            f.write(m.text +  "\n")
            f.close()
            bot.send_message(m.chat.id, "Saved!")

bot.set_update_listener(save)
bot.polling()

我们的想法是在文件channel中存储包含单词keyword的邮件。如果我跟他说话,这个机器人工作得很好,但是如果我将机器人添加到一个频道,它就不起作用。机器人已禁用隐私模式并启用joingroups选项。

我有另一个机器人做同样但使用不同的代码:     导入日志记录     进口口     来自telegram.ext import Updater,MessageHandler,Filters

updater = Updater(token=os.environ['BOT_API_TOKEN'])
dispatcher = updater.dispatcher
def save(bot, update):
    print(update.message.text)
    if "keyword" in update.message.text:
        f = open("channel", "a")
        f.write(update.message.text +  "\n")
        f.close()
        bot.sendMessage(chat_id=update.message.chat_id, text="Saved!")

save_handler = MessageHandler(Filters.text, save)
dispatcher.add_handler(save_handler)
updater.start_polling()

我不介意你可以帮助我哪个版本。

1 个答案:

答案 0 :(得分:1)

如果您要处理频道消息,则需要解析channel_post字段而不是message字段。

您可以锁定官方文档的Update部分以获取更多详细信息。