![](/img/trans.png)
[英]How to use python-telegram-bot to send messages to a telegram channel
[英]How to get messages of telegram channel by python-telegram-bot tool
我想知道是否有一種可能的方法可以從電報頻道獲取消息,因為我知道我登錄到該帳戶並且我是該頻道的管理員,所以我只想要獲取消息。
import feedparser
from telegram import Update, ForceReply, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext, CallbackQueryHandler
from bs4 import BeautifulSoup
from datetime import datetime
import json
import telegram
from time import sleep
from telegram.ext import MessageHandler, Filters
class Config:
def __init__(self):
with open("config.json", "r") as config:
self.config = json.load(config)
class TelegramBotChannel:
def __init__(self, token, start_channel_id):
self.updater = Updater(token=token, use_context=True)
self.dispatcher = self.updater.dispatcher
self.start_channel_id = start_channel_id
if __name__ == '__main__':
telegram_bot = TelegramBotChannel(Config().config["token"], Config().config["start"])
pass
如果機器人是該頻道的成員,則它們只能獲取有關頻道帖子的更新(並且機器人只能以管理員身份添加到頻道)。 如果他們是頻道的管理員,他們將像從其他聊天中一樣收到更新。
要求 :
所以首先要做一個函數:
def forwader(update , context):
context.bot.copy_message("@temporary2for" ,"@tempmain" , update.channel_post.message_id)
之后制作處理程序:
forwadHandler= MessageHandler(Filters.text & (~Filters.command) , forwader)
比注冊您的處理程序:
dispatcher.add_handler(forwadHandler)
不要忘記開始機器人輪詢:
updater.start_polling()
updater.idle()
完整代碼:
from telegram import bot
from telegram.ext import Updater , CommandHandler , Filters , MessageHandler
from config import useless
import logging
updater = Updater(token=useless, use_context=True)
dispatcher = updater.dispatcher
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
level=logging.INFO)
def forwader(update , context):
context.bot.copy_message("@temporary2for" ,"@tempmain" , update.channel_post.message_id)
forwadHandler= MessageHandler(Filters.text & (~Filters.command) , forwader)
dispatcher.add_handler(forwadHandler)
updater.start_polling()
updater.idle()
有些導入沒用。
這是使用電報機器人從頻道獲取消息的最少代碼,電報機器人是頻道的訂閱者(僅可能是管理員訂閱)。 提供正確的 bot api 作為 KEY。:
from api_keys import bot_api_key as KEY
from telegram.ext import Updater, Filters, MessageHandler
updater = Updater(token=KEY, use_context=True)
dispatcher = updater.dispatcher
def forwarder(update, context):
msg = update.channel_post
if msg:
print(msg)
forwardHandler = MessageHandler(Filters.text & (~Filters.command), forwarder)
dispatcher.add_handler(forwardHandler)
updater.start_polling()
updater.idle()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.