我使用一个非常简单的代码来收听两个特定的电报输入通道,并将所有接收到的消息复制到一个目标信道。我使用Pyrogram,它实现了MTProto,因为我不是源通道的管理员,我只是一个读者--因此我不能使用常规的BOT API,因为我的BOT不会被添加到源通道中--相反,我需要依赖用户Bot -> MTProto。
到目前为止,我一直在使用Pyrogram 1.2.9,直到4周前它才开始正常工作。
我的代码非常简单明了:
#!/usr/bin/env python3
from pyrogram import Client
from pyrogram import filters
import sys, traceback
from datetime import datetime
# ~~~~~~ CONFIG ~~~~~~~~ #
ACCOUNT = "..."
PHONE_NR = '...'
# API ID and Hash from https://my.telegram.org/auth?to=apps
API_ID = 58111111111
API_HASH = "2234tsdfxxxxxxxxxxxxxxxxxxxxx65"
# Channel IDs...
INPUT__official = -100132xxxxxx
INPUT__testchannel = -100164yyyyyy
OUTPUT__MT_FORWARD_CHAT_ID = -100146xxxxx
# ~~~~~~~~~~~~~~~~~~~~~~ #
try:
app = Client(
ACCOUNT,
phone_number=PHONE_NR,
api_id=API_ID,
api_hash=API_HASH
)
f = filters.chat(INPUT__official) | filters.chat(INPUT__testchannel)
@app.on_message(f)
def my_handler(client, message):
print(message)
# copy() so there's no "forwarded from" header
message.copy(chat_id=OUTPUT__MT_FORWARD_CHAT_ID, caption="")
app.run() 奇怪的是:如果删除过滤器f,就会看到来自各种聊天/通道的消息被成功打印,并复制到目标通道。
但是,仅针对一个特定的源频道,即使我在智能手机上的电报应用程序中看到了接收到的消息,我也无法看到它们--是否添加了一个新设置,禁止MTProto用户Bots读取特定的组/频道?
非常感谢!
发布于 2021-12-30 14:00:56
是。添加了一个名为Restrict Saving Content (或content protection)的新设置
任何频道所有者都可以启用它,这将阻止用户转发甚至复制包括文本在内的内容。
https://stackoverflow.com/questions/70509473
复制相似问题